khoadang31 commited on
Commit
39100fb
·
1 Parent(s): 2411a17

first commit

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .gitattributes +0 -35
  2. README.md +0 -12
  3. index.js +11 -0
  4. list.js +6 -0
  5. node_modules/.bin/mime +12 -0
  6. node_modules/.bin/mime.cmd +17 -0
  7. node_modules/.bin/mime.ps1 +28 -0
  8. node_modules/.package-lock.json +732 -0
  9. node_modules/@replit/database/.replit +2 -0
  10. node_modules/@replit/database/.semaphore/semaphore.yml +30 -0
  11. node_modules/@replit/database/LICENSE +46 -0
  12. node_modules/@replit/database/README.md +68 -0
  13. node_modules/@replit/database/index.d.ts +15 -0
  14. node_modules/@replit/database/index.js +164 -0
  15. node_modules/@replit/database/index.test.js +88 -0
  16. node_modules/@replit/database/package.json +26 -0
  17. node_modules/accepts/HISTORY.md +243 -0
  18. node_modules/accepts/LICENSE +23 -0
  19. node_modules/accepts/README.md +140 -0
  20. node_modules/accepts/index.js +238 -0
  21. node_modules/accepts/package.json +47 -0
  22. node_modules/array-flatten/LICENSE +21 -0
  23. node_modules/array-flatten/README.md +43 -0
  24. node_modules/array-flatten/array-flatten.js +64 -0
  25. node_modules/array-flatten/package.json +39 -0
  26. node_modules/axios/CHANGELOG.md +906 -0
  27. node_modules/axios/LICENSE +19 -0
  28. node_modules/axios/README.md +909 -0
  29. node_modules/axios/SECURITY.md +5 -0
  30. node_modules/axios/UPGRADE_GUIDE.md +168 -0
  31. node_modules/axios/dist/axios.js +2293 -0
  32. node_modules/axios/dist/axios.map +1 -0
  33. node_modules/axios/dist/axios.min.js +2 -0
  34. node_modules/axios/dist/axios.min.map +1 -0
  35. node_modules/axios/index.d.ts +221 -0
  36. node_modules/axios/index.js +1 -0
  37. node_modules/axios/lib/adapters/README.md +37 -0
  38. node_modules/axios/lib/adapters/http.js +404 -0
  39. node_modules/axios/lib/adapters/xhr.js +212 -0
  40. node_modules/axios/lib/axios.js +57 -0
  41. node_modules/axios/lib/cancel/Cancel.js +19 -0
  42. node_modules/axios/lib/cancel/CancelToken.js +119 -0
  43. node_modules/axios/lib/cancel/isCancel.js +5 -0
  44. node_modules/axios/lib/core/Axios.js +148 -0
  45. node_modules/axios/lib/core/InterceptorManager.js +54 -0
  46. node_modules/axios/lib/core/README.md +8 -0
  47. node_modules/axios/lib/core/buildFullPath.js +20 -0
  48. node_modules/axios/lib/core/createError.js +18 -0
  49. node_modules/axios/lib/core/dispatchRequest.js +87 -0
  50. node_modules/axios/lib/core/enhanceError.js +43 -0
.gitattributes DELETED
@@ -1,35 +0,0 @@
1
- *.7z filter=lfs diff=lfs merge=lfs -text
2
- *.arrow filter=lfs diff=lfs merge=lfs -text
3
- *.bin filter=lfs diff=lfs merge=lfs -text
4
- *.bz2 filter=lfs diff=lfs merge=lfs -text
5
- *.ckpt filter=lfs diff=lfs merge=lfs -text
6
- *.ftz filter=lfs diff=lfs merge=lfs -text
7
- *.gz filter=lfs diff=lfs merge=lfs -text
8
- *.h5 filter=lfs diff=lfs merge=lfs -text
9
- *.joblib filter=lfs diff=lfs merge=lfs -text
10
- *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
- *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
- *.model filter=lfs diff=lfs merge=lfs -text
13
- *.msgpack filter=lfs diff=lfs merge=lfs -text
14
- *.npy filter=lfs diff=lfs merge=lfs -text
15
- *.npz filter=lfs diff=lfs merge=lfs -text
16
- *.onnx filter=lfs diff=lfs merge=lfs -text
17
- *.ot filter=lfs diff=lfs merge=lfs -text
18
- *.parquet filter=lfs diff=lfs merge=lfs -text
19
- *.pb filter=lfs diff=lfs merge=lfs -text
20
- *.pickle filter=lfs diff=lfs merge=lfs -text
21
- *.pkl filter=lfs diff=lfs merge=lfs -text
22
- *.pt filter=lfs diff=lfs merge=lfs -text
23
- *.pth filter=lfs diff=lfs merge=lfs -text
24
- *.rar filter=lfs diff=lfs merge=lfs -text
25
- *.safetensors filter=lfs diff=lfs merge=lfs -text
26
- saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
- *.tar.* filter=lfs diff=lfs merge=lfs -text
28
- *.tar filter=lfs diff=lfs merge=lfs -text
29
- *.tflite filter=lfs diff=lfs merge=lfs -text
30
- *.tgz filter=lfs diff=lfs merge=lfs -text
31
- *.wasm filter=lfs diff=lfs merge=lfs -text
32
- *.xz filter=lfs diff=lfs merge=lfs -text
33
- *.zip filter=lfs diff=lfs merge=lfs -text
34
- *.zst filter=lfs diff=lfs merge=lfs -text
35
- *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
README.md DELETED
@@ -1,12 +0,0 @@
1
- ---
2
- title: Uptime
3
- emoji: 🐢
4
- colorFrom: green
5
- colorTo: green
6
- sdk: streamlit
7
- sdk_version: 1.29.0
8
- app_file: app.py
9
- pinned: false
10
- ---
11
-
12
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
 
 
 
 
 
 
 
 
 
 
 
index.js ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ const cp = require('child_process');
2
+
3
+ start = () => {
4
+ var child = cp.fork(__dirname + '/server.js');
5
+
6
+ child.on("close", () => {
7
+ console.log("Restarting...")
8
+ setTimeout(() => start(), 250)
9
+ });
10
+ };
11
+ start();
list.js ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ const Database = require("@replit/database");
2
+ const db = new Database();
3
+ db.get('urls').then(urls => {
4
+ console.log(urls)
5
+ console.log('Tổng:', urls.length)
6
+ });
node_modules/.bin/mime ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
6
+ esac
7
+
8
+ if [ -x "$basedir/node" ]; then
9
+ exec "$basedir/node" "$basedir/../mime/cli.js" "$@"
10
+ else
11
+ exec node "$basedir/../mime/cli.js" "$@"
12
+ fi
node_modules/.bin/mime.cmd ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @ECHO off
2
+ GOTO start
3
+ :find_dp0
4
+ SET dp0=%~dp0
5
+ EXIT /b
6
+ :start
7
+ SETLOCAL
8
+ CALL :find_dp0
9
+
10
+ IF EXIST "%dp0%\node.exe" (
11
+ SET "_prog=%dp0%\node.exe"
12
+ ) ELSE (
13
+ SET "_prog=node"
14
+ SET PATHEXT=%PATHEXT:;.JS;=;%
15
+ )
16
+
17
+ endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\mime\cli.js" %*
node_modules/.bin/mime.ps1 ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env pwsh
2
+ $basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
3
+
4
+ $exe=""
5
+ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
6
+ # Fix case when both the Windows and Linux builds of Node
7
+ # are installed in the same directory
8
+ $exe=".exe"
9
+ }
10
+ $ret=0
11
+ if (Test-Path "$basedir/node$exe") {
12
+ # Support pipeline input
13
+ if ($MyInvocation.ExpectingInput) {
14
+ $input | & "$basedir/node$exe" "$basedir/../mime/cli.js" $args
15
+ } else {
16
+ & "$basedir/node$exe" "$basedir/../mime/cli.js" $args
17
+ }
18
+ $ret=$LASTEXITCODE
19
+ } else {
20
+ # Support pipeline input
21
+ if ($MyInvocation.ExpectingInput) {
22
+ $input | & "node$exe" "$basedir/../mime/cli.js" $args
23
+ } else {
24
+ & "node$exe" "$basedir/../mime/cli.js" $args
25
+ }
26
+ $ret=$LASTEXITCODE
27
+ }
28
+ exit $ret
node_modules/.package-lock.json ADDED
@@ -0,0 +1,732 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "vigorousentirebundledsoftware",
3
+ "version": "1.0.0",
4
+ "lockfileVersion": 3,
5
+ "requires": true,
6
+ "packages": {
7
+ "node_modules/@replit/database": {
8
+ "version": "2.0.5",
9
+ "resolved": "https://registry.npmjs.org/@replit/database/-/database-2.0.5.tgz",
10
+ "integrity": "sha512-cWQptR7n2mzzsB7VbMVNYeKFng+n9SLQFgraEPXbWzFhnWOX33SgiwCqheiXsUmDllhb71UQhXsz21wzaVgZpA==",
11
+ "dependencies": {
12
+ "node-fetch": "^2.6.0"
13
+ }
14
+ },
15
+ "node_modules/accepts": {
16
+ "version": "1.3.8",
17
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
18
+ "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
19
+ "dependencies": {
20
+ "mime-types": "~2.1.34",
21
+ "negotiator": "0.6.3"
22
+ },
23
+ "engines": {
24
+ "node": ">= 0.6"
25
+ }
26
+ },
27
+ "node_modules/array-flatten": {
28
+ "version": "1.1.1",
29
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
30
+ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
31
+ },
32
+ "node_modules/axios": {
33
+ "version": "0.26.1",
34
+ "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz",
35
+ "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==",
36
+ "dependencies": {
37
+ "follow-redirects": "^1.14.8"
38
+ }
39
+ },
40
+ "node_modules/body-parser": {
41
+ "version": "1.20.1",
42
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz",
43
+ "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==",
44
+ "dependencies": {
45
+ "bytes": "3.1.2",
46
+ "content-type": "~1.0.4",
47
+ "debug": "2.6.9",
48
+ "depd": "2.0.0",
49
+ "destroy": "1.2.0",
50
+ "http-errors": "2.0.0",
51
+ "iconv-lite": "0.4.24",
52
+ "on-finished": "2.4.1",
53
+ "qs": "6.11.0",
54
+ "raw-body": "2.5.1",
55
+ "type-is": "~1.6.18",
56
+ "unpipe": "1.0.0"
57
+ },
58
+ "engines": {
59
+ "node": ">= 0.8",
60
+ "npm": "1.2.8000 || >= 1.4.16"
61
+ }
62
+ },
63
+ "node_modules/bytes": {
64
+ "version": "3.1.2",
65
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
66
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
67
+ "engines": {
68
+ "node": ">= 0.8"
69
+ }
70
+ },
71
+ "node_modules/call-bind": {
72
+ "version": "1.0.5",
73
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz",
74
+ "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==",
75
+ "dependencies": {
76
+ "function-bind": "^1.1.2",
77
+ "get-intrinsic": "^1.2.1",
78
+ "set-function-length": "^1.1.1"
79
+ },
80
+ "funding": {
81
+ "url": "https://github.com/sponsors/ljharb"
82
+ }
83
+ },
84
+ "node_modules/child_process": {
85
+ "version": "1.0.2",
86
+ "resolved": "https://registry.npmjs.org/child_process/-/child_process-1.0.2.tgz",
87
+ "integrity": "sha512-Wmza/JzL0SiWz7kl6MhIKT5ceIlnFPJX+lwUGj7Clhy5MMldsSoJR0+uvRzOS5Kv45Mq7t1PoE8TsOA9bzvb6g=="
88
+ },
89
+ "node_modules/content-disposition": {
90
+ "version": "0.5.4",
91
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
92
+ "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
93
+ "dependencies": {
94
+ "safe-buffer": "5.2.1"
95
+ },
96
+ "engines": {
97
+ "node": ">= 0.6"
98
+ }
99
+ },
100
+ "node_modules/content-type": {
101
+ "version": "1.0.5",
102
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
103
+ "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
104
+ "engines": {
105
+ "node": ">= 0.6"
106
+ }
107
+ },
108
+ "node_modules/cookie": {
109
+ "version": "0.5.0",
110
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
111
+ "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==",
112
+ "engines": {
113
+ "node": ">= 0.6"
114
+ }
115
+ },
116
+ "node_modules/cookie-signature": {
117
+ "version": "1.0.6",
118
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
119
+ "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
120
+ },
121
+ "node_modules/debug": {
122
+ "version": "2.6.9",
123
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
124
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
125
+ "dependencies": {
126
+ "ms": "2.0.0"
127
+ }
128
+ },
129
+ "node_modules/define-data-property": {
130
+ "version": "1.1.1",
131
+ "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz",
132
+ "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==",
133
+ "dependencies": {
134
+ "get-intrinsic": "^1.2.1",
135
+ "gopd": "^1.0.1",
136
+ "has-property-descriptors": "^1.0.0"
137
+ },
138
+ "engines": {
139
+ "node": ">= 0.4"
140
+ }
141
+ },
142
+ "node_modules/depd": {
143
+ "version": "2.0.0",
144
+ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
145
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
146
+ "engines": {
147
+ "node": ">= 0.8"
148
+ }
149
+ },
150
+ "node_modules/destroy": {
151
+ "version": "1.2.0",
152
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
153
+ "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
154
+ "engines": {
155
+ "node": ">= 0.8",
156
+ "npm": "1.2.8000 || >= 1.4.16"
157
+ }
158
+ },
159
+ "node_modules/ee-first": {
160
+ "version": "1.1.1",
161
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
162
+ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
163
+ },
164
+ "node_modules/encodeurl": {
165
+ "version": "1.0.2",
166
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
167
+ "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
168
+ "engines": {
169
+ "node": ">= 0.8"
170
+ }
171
+ },
172
+ "node_modules/escape-html": {
173
+ "version": "1.0.3",
174
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
175
+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
176
+ },
177
+ "node_modules/etag": {
178
+ "version": "1.8.1",
179
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
180
+ "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
181
+ "engines": {
182
+ "node": ">= 0.6"
183
+ }
184
+ },
185
+ "node_modules/express": {
186
+ "version": "4.18.2",
187
+ "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz",
188
+ "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==",
189
+ "dependencies": {
190
+ "accepts": "~1.3.8",
191
+ "array-flatten": "1.1.1",
192
+ "body-parser": "1.20.1",
193
+ "content-disposition": "0.5.4",
194
+ "content-type": "~1.0.4",
195
+ "cookie": "0.5.0",
196
+ "cookie-signature": "1.0.6",
197
+ "debug": "2.6.9",
198
+ "depd": "2.0.0",
199
+ "encodeurl": "~1.0.2",
200
+ "escape-html": "~1.0.3",
201
+ "etag": "~1.8.1",
202
+ "finalhandler": "1.2.0",
203
+ "fresh": "0.5.2",
204
+ "http-errors": "2.0.0",
205
+ "merge-descriptors": "1.0.1",
206
+ "methods": "~1.1.2",
207
+ "on-finished": "2.4.1",
208
+ "parseurl": "~1.3.3",
209
+ "path-to-regexp": "0.1.7",
210
+ "proxy-addr": "~2.0.7",
211
+ "qs": "6.11.0",
212
+ "range-parser": "~1.2.1",
213
+ "safe-buffer": "5.2.1",
214
+ "send": "0.18.0",
215
+ "serve-static": "1.15.0",
216
+ "setprototypeof": "1.2.0",
217
+ "statuses": "2.0.1",
218
+ "type-is": "~1.6.18",
219
+ "utils-merge": "1.0.1",
220
+ "vary": "~1.1.2"
221
+ },
222
+ "engines": {
223
+ "node": ">= 0.10.0"
224
+ }
225
+ },
226
+ "node_modules/finalhandler": {
227
+ "version": "1.2.0",
228
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
229
+ "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
230
+ "dependencies": {
231
+ "debug": "2.6.9",
232
+ "encodeurl": "~1.0.2",
233
+ "escape-html": "~1.0.3",
234
+ "on-finished": "2.4.1",
235
+ "parseurl": "~1.3.3",
236
+ "statuses": "2.0.1",
237
+ "unpipe": "~1.0.0"
238
+ },
239
+ "engines": {
240
+ "node": ">= 0.8"
241
+ }
242
+ },
243
+ "node_modules/follow-redirects": {
244
+ "version": "1.15.4",
245
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz",
246
+ "integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==",
247
+ "funding": [
248
+ {
249
+ "type": "individual",
250
+ "url": "https://github.com/sponsors/RubenVerborgh"
251
+ }
252
+ ],
253
+ "engines": {
254
+ "node": ">=4.0"
255
+ },
256
+ "peerDependenciesMeta": {
257
+ "debug": {
258
+ "optional": true
259
+ }
260
+ }
261
+ },
262
+ "node_modules/forwarded": {
263
+ "version": "0.2.0",
264
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
265
+ "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
266
+ "engines": {
267
+ "node": ">= 0.6"
268
+ }
269
+ },
270
+ "node_modules/fresh": {
271
+ "version": "0.5.2",
272
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
273
+ "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
274
+ "engines": {
275
+ "node": ">= 0.6"
276
+ }
277
+ },
278
+ "node_modules/function-bind": {
279
+ "version": "1.1.2",
280
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
281
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
282
+ "funding": {
283
+ "url": "https://github.com/sponsors/ljharb"
284
+ }
285
+ },
286
+ "node_modules/get-intrinsic": {
287
+ "version": "1.2.2",
288
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz",
289
+ "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==",
290
+ "dependencies": {
291
+ "function-bind": "^1.1.2",
292
+ "has-proto": "^1.0.1",
293
+ "has-symbols": "^1.0.3",
294
+ "hasown": "^2.0.0"
295
+ },
296
+ "funding": {
297
+ "url": "https://github.com/sponsors/ljharb"
298
+ }
299
+ },
300
+ "node_modules/gopd": {
301
+ "version": "1.0.1",
302
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
303
+ "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
304
+ "dependencies": {
305
+ "get-intrinsic": "^1.1.3"
306
+ },
307
+ "funding": {
308
+ "url": "https://github.com/sponsors/ljharb"
309
+ }
310
+ },
311
+ "node_modules/has-property-descriptors": {
312
+ "version": "1.0.1",
313
+ "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz",
314
+ "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==",
315
+ "dependencies": {
316
+ "get-intrinsic": "^1.2.2"
317
+ },
318
+ "funding": {
319
+ "url": "https://github.com/sponsors/ljharb"
320
+ }
321
+ },
322
+ "node_modules/has-proto": {
323
+ "version": "1.0.1",
324
+ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz",
325
+ "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==",
326
+ "engines": {
327
+ "node": ">= 0.4"
328
+ },
329
+ "funding": {
330
+ "url": "https://github.com/sponsors/ljharb"
331
+ }
332
+ },
333
+ "node_modules/has-symbols": {
334
+ "version": "1.0.3",
335
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
336
+ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
337
+ "engines": {
338
+ "node": ">= 0.4"
339
+ },
340
+ "funding": {
341
+ "url": "https://github.com/sponsors/ljharb"
342
+ }
343
+ },
344
+ "node_modules/hasown": {
345
+ "version": "2.0.0",
346
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz",
347
+ "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==",
348
+ "dependencies": {
349
+ "function-bind": "^1.1.2"
350
+ },
351
+ "engines": {
352
+ "node": ">= 0.4"
353
+ }
354
+ },
355
+ "node_modules/http": {
356
+ "version": "0.0.1-security",
357
+ "resolved": "https://registry.npmjs.org/http/-/http-0.0.1-security.tgz",
358
+ "integrity": "sha512-RnDvP10Ty9FxqOtPZuxtebw1j4L/WiqNMDtuc1YMH1XQm5TgDRaR1G9u8upL6KD1bXHSp9eSXo/ED+8Q7FAr+g=="
359
+ },
360
+ "node_modules/http-errors": {
361
+ "version": "2.0.0",
362
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
363
+ "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
364
+ "dependencies": {
365
+ "depd": "2.0.0",
366
+ "inherits": "2.0.4",
367
+ "setprototypeof": "1.2.0",
368
+ "statuses": "2.0.1",
369
+ "toidentifier": "1.0.1"
370
+ },
371
+ "engines": {
372
+ "node": ">= 0.8"
373
+ }
374
+ },
375
+ "node_modules/iconv-lite": {
376
+ "version": "0.4.24",
377
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
378
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
379
+ "dependencies": {
380
+ "safer-buffer": ">= 2.1.2 < 3"
381
+ },
382
+ "engines": {
383
+ "node": ">=0.10.0"
384
+ }
385
+ },
386
+ "node_modules/inherits": {
387
+ "version": "2.0.4",
388
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
389
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
390
+ },
391
+ "node_modules/ipaddr.js": {
392
+ "version": "1.9.1",
393
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
394
+ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
395
+ "engines": {
396
+ "node": ">= 0.10"
397
+ }
398
+ },
399
+ "node_modules/media-typer": {
400
+ "version": "0.3.0",
401
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
402
+ "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
403
+ "engines": {
404
+ "node": ">= 0.6"
405
+ }
406
+ },
407
+ "node_modules/merge-descriptors": {
408
+ "version": "1.0.1",
409
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
410
+ "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w=="
411
+ },
412
+ "node_modules/methods": {
413
+ "version": "1.1.2",
414
+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
415
+ "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
416
+ "engines": {
417
+ "node": ">= 0.6"
418
+ }
419
+ },
420
+ "node_modules/mime": {
421
+ "version": "1.6.0",
422
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
423
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
424
+ "bin": {
425
+ "mime": "cli.js"
426
+ },
427
+ "engines": {
428
+ "node": ">=4"
429
+ }
430
+ },
431
+ "node_modules/mime-db": {
432
+ "version": "1.52.0",
433
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
434
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
435
+ "engines": {
436
+ "node": ">= 0.6"
437
+ }
438
+ },
439
+ "node_modules/mime-types": {
440
+ "version": "2.1.35",
441
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
442
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
443
+ "dependencies": {
444
+ "mime-db": "1.52.0"
445
+ },
446
+ "engines": {
447
+ "node": ">= 0.6"
448
+ }
449
+ },
450
+ "node_modules/ms": {
451
+ "version": "2.0.0",
452
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
453
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
454
+ },
455
+ "node_modules/negotiator": {
456
+ "version": "0.6.3",
457
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
458
+ "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
459
+ "engines": {
460
+ "node": ">= 0.6"
461
+ }
462
+ },
463
+ "node_modules/node-fetch": {
464
+ "version": "2.7.0",
465
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
466
+ "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
467
+ "dependencies": {
468
+ "whatwg-url": "^5.0.0"
469
+ },
470
+ "engines": {
471
+ "node": "4.x || >=6.0.0"
472
+ },
473
+ "peerDependencies": {
474
+ "encoding": "^0.1.0"
475
+ },
476
+ "peerDependenciesMeta": {
477
+ "encoding": {
478
+ "optional": true
479
+ }
480
+ }
481
+ },
482
+ "node_modules/object-inspect": {
483
+ "version": "1.13.1",
484
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz",
485
+ "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==",
486
+ "funding": {
487
+ "url": "https://github.com/sponsors/ljharb"
488
+ }
489
+ },
490
+ "node_modules/on-finished": {
491
+ "version": "2.4.1",
492
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
493
+ "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
494
+ "dependencies": {
495
+ "ee-first": "1.1.1"
496
+ },
497
+ "engines": {
498
+ "node": ">= 0.8"
499
+ }
500
+ },
501
+ "node_modules/parseurl": {
502
+ "version": "1.3.3",
503
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
504
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
505
+ "engines": {
506
+ "node": ">= 0.8"
507
+ }
508
+ },
509
+ "node_modules/path-to-regexp": {
510
+ "version": "0.1.7",
511
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
512
+ "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
513
+ },
514
+ "node_modules/proxy-addr": {
515
+ "version": "2.0.7",
516
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
517
+ "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
518
+ "dependencies": {
519
+ "forwarded": "0.2.0",
520
+ "ipaddr.js": "1.9.1"
521
+ },
522
+ "engines": {
523
+ "node": ">= 0.10"
524
+ }
525
+ },
526
+ "node_modules/qs": {
527
+ "version": "6.11.0",
528
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
529
+ "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
530
+ "dependencies": {
531
+ "side-channel": "^1.0.4"
532
+ },
533
+ "engines": {
534
+ "node": ">=0.6"
535
+ },
536
+ "funding": {
537
+ "url": "https://github.com/sponsors/ljharb"
538
+ }
539
+ },
540
+ "node_modules/range-parser": {
541
+ "version": "1.2.1",
542
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
543
+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
544
+ "engines": {
545
+ "node": ">= 0.6"
546
+ }
547
+ },
548
+ "node_modules/raw-body": {
549
+ "version": "2.5.1",
550
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz",
551
+ "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
552
+ "dependencies": {
553
+ "bytes": "3.1.2",
554
+ "http-errors": "2.0.0",
555
+ "iconv-lite": "0.4.24",
556
+ "unpipe": "1.0.0"
557
+ },
558
+ "engines": {
559
+ "node": ">= 0.8"
560
+ }
561
+ },
562
+ "node_modules/safe-buffer": {
563
+ "version": "5.2.1",
564
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
565
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
566
+ "funding": [
567
+ {
568
+ "type": "github",
569
+ "url": "https://github.com/sponsors/feross"
570
+ },
571
+ {
572
+ "type": "patreon",
573
+ "url": "https://www.patreon.com/feross"
574
+ },
575
+ {
576
+ "type": "consulting",
577
+ "url": "https://feross.org/support"
578
+ }
579
+ ]
580
+ },
581
+ "node_modules/safer-buffer": {
582
+ "version": "2.1.2",
583
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
584
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
585
+ },
586
+ "node_modules/send": {
587
+ "version": "0.18.0",
588
+ "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
589
+ "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
590
+ "dependencies": {
591
+ "debug": "2.6.9",
592
+ "depd": "2.0.0",
593
+ "destroy": "1.2.0",
594
+ "encodeurl": "~1.0.2",
595
+ "escape-html": "~1.0.3",
596
+ "etag": "~1.8.1",
597
+ "fresh": "0.5.2",
598
+ "http-errors": "2.0.0",
599
+ "mime": "1.6.0",
600
+ "ms": "2.1.3",
601
+ "on-finished": "2.4.1",
602
+ "range-parser": "~1.2.1",
603
+ "statuses": "2.0.1"
604
+ },
605
+ "engines": {
606
+ "node": ">= 0.8.0"
607
+ }
608
+ },
609
+ "node_modules/send/node_modules/ms": {
610
+ "version": "2.1.3",
611
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
612
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
613
+ },
614
+ "node_modules/serve-static": {
615
+ "version": "1.15.0",
616
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz",
617
+ "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
618
+ "dependencies": {
619
+ "encodeurl": "~1.0.2",
620
+ "escape-html": "~1.0.3",
621
+ "parseurl": "~1.3.3",
622
+ "send": "0.18.0"
623
+ },
624
+ "engines": {
625
+ "node": ">= 0.8.0"
626
+ }
627
+ },
628
+ "node_modules/set-function-length": {
629
+ "version": "1.1.1",
630
+ "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz",
631
+ "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==",
632
+ "dependencies": {
633
+ "define-data-property": "^1.1.1",
634
+ "get-intrinsic": "^1.2.1",
635
+ "gopd": "^1.0.1",
636
+ "has-property-descriptors": "^1.0.0"
637
+ },
638
+ "engines": {
639
+ "node": ">= 0.4"
640
+ }
641
+ },
642
+ "node_modules/setprototypeof": {
643
+ "version": "1.2.0",
644
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
645
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
646
+ },
647
+ "node_modules/side-channel": {
648
+ "version": "1.0.4",
649
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
650
+ "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
651
+ "dependencies": {
652
+ "call-bind": "^1.0.0",
653
+ "get-intrinsic": "^1.0.2",
654
+ "object-inspect": "^1.9.0"
655
+ },
656
+ "funding": {
657
+ "url": "https://github.com/sponsors/ljharb"
658
+ }
659
+ },
660
+ "node_modules/statuses": {
661
+ "version": "2.0.1",
662
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
663
+ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
664
+ "engines": {
665
+ "node": ">= 0.8"
666
+ }
667
+ },
668
+ "node_modules/toidentifier": {
669
+ "version": "1.0.1",
670
+ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
671
+ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
672
+ "engines": {
673
+ "node": ">=0.6"
674
+ }
675
+ },
676
+ "node_modules/tr46": {
677
+ "version": "0.0.3",
678
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
679
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
680
+ },
681
+ "node_modules/type-is": {
682
+ "version": "1.6.18",
683
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
684
+ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
685
+ "dependencies": {
686
+ "media-typer": "0.3.0",
687
+ "mime-types": "~2.1.24"
688
+ },
689
+ "engines": {
690
+ "node": ">= 0.6"
691
+ }
692
+ },
693
+ "node_modules/unpipe": {
694
+ "version": "1.0.0",
695
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
696
+ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
697
+ "engines": {
698
+ "node": ">= 0.8"
699
+ }
700
+ },
701
+ "node_modules/utils-merge": {
702
+ "version": "1.0.1",
703
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
704
+ "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
705
+ "engines": {
706
+ "node": ">= 0.4.0"
707
+ }
708
+ },
709
+ "node_modules/vary": {
710
+ "version": "1.1.2",
711
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
712
+ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
713
+ "engines": {
714
+ "node": ">= 0.8"
715
+ }
716
+ },
717
+ "node_modules/webidl-conversions": {
718
+ "version": "3.0.1",
719
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
720
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
721
+ },
722
+ "node_modules/whatwg-url": {
723
+ "version": "5.0.0",
724
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
725
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
726
+ "dependencies": {
727
+ "tr46": "~0.0.3",
728
+ "webidl-conversions": "^3.0.0"
729
+ }
730
+ }
731
+ }
732
+ }
node_modules/@replit/database/.replit ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ language = "nodejs"
2
+ run = "npm run test"
node_modules/@replit/database/.semaphore/semaphore.yml ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ version: v1.0
2
+ name: database-node
3
+ agent:
4
+ machine:
5
+ type: e1-standard-2
6
+ os_image: ubuntu1804
7
+ blocks:
8
+ - name: Test
9
+ task:
10
+ jobs:
11
+ - name: Test (JWT)
12
+ commands:
13
+ - checkout
14
+ - sem-version node 12
15
+ - cache restore
16
+ - npm install
17
+ - cache store
18
+ - npm run build --if-present
19
+ - npm test
20
+ - name: Test (Repl Identity)
21
+ commands:
22
+ - checkout
23
+ - sem-version node 12
24
+ - cache restore
25
+ - npm install
26
+ - cache store
27
+ - npm run build --if-present
28
+ - USE_FILE=1 npm test
29
+ secrets:
30
+ - name: replit-database
node_modules/@replit/database/LICENSE ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ MIT License
2
+
3
+ Copyright (c) 2020 Repl.it
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
22
+
23
+ ---
24
+ The following license is carried over from the original source code:
25
+
26
+ MIT License
27
+
28
+ Copyright (c) 2020 Junhao Zhang
29
+
30
+ Permission is hereby granted, free of charge, to any person obtaining a copy
31
+ of this software and associated documentation files (the "Software"), to deal
32
+ in the Software without restriction, including without limitation the rights
33
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
34
+ copies of the Software, and to permit persons to whom the Software is
35
+ furnished to do so, subject to the following conditions:
36
+
37
+ The above copyright notice and this permission notice shall be included in all
38
+ copies or substantial portions of the Software.
39
+
40
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
41
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
42
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
43
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
44
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
45
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
46
+ SOFTWARE.
node_modules/@replit/database/README.md ADDED
@@ -0,0 +1,68 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [![npm version](https://badge.fury.io/js/%40replit%2Fdatabase.svg)](https://badge.fury.io/js/%40replit%2Fdatabase)
2
+
3
+ [![Run on Repl.it](https://repl.it/badge/github/replit/database-node)](https://repl.it/github/replit/database-node)
4
+
5
+ # Repl.it Database client
6
+ Repl.it Database client is a simple way to use Repl.it Database in your Node.js repls. It uses `await/async`.
7
+
8
+ ## Get started
9
+ ```js
10
+ const Client = require("@replit/database");
11
+ const client = new Client();
12
+ await client.set("key", "value");
13
+ let key = await client.get("key");
14
+ console.log(key);
15
+ ```
16
+
17
+ ## Docs
18
+ ### `class Client(String key?)`
19
+ The key is the optional custom URL.
20
+
21
+ **Native Functions**
22
+
23
+ These functions are specified in the repl.it DB.
24
+
25
+ > `get(String key, Object options?)`
26
+
27
+ Gets a key. Returns Promise.
28
+ ```js
29
+ client.get("key", { raw: false }).then(console.log);
30
+ ```
31
+
32
+ > `set(String key, Any value)`
33
+
34
+ Sets a key to value. Returns Client.
35
+
36
+ > `delete(String key)`
37
+
38
+ Deletes a key. Returns Client.
39
+
40
+ > `list(String? prefix)`
41
+
42
+ Lists all of the keys, or all of the keys starting with `prefix` if specifed.
43
+
44
+ **Dynamic Functions**
45
+
46
+ These functions have been added by me.
47
+
48
+ > `empty()`
49
+
50
+ Clears the database. Returns Client
51
+
52
+ > `getAll()`
53
+
54
+ Get all key/value pairs and return as an object.
55
+
56
+ > `setAll(Object obj)`
57
+
58
+ Sets the entire database through a key/value object. Returns Client
59
+
60
+ > `deleteMultiple(...String args)`
61
+
62
+ Deletes multiple keys. Returns client.
63
+
64
+ ## Tests
65
+ ```sh
66
+ npm i
67
+ npm run test
68
+ ```
node_modules/@replit/database/index.d.ts ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ export default class Client {
2
+ constructor(key?: string);
3
+
4
+ // Native
5
+ public get(key: string, options?: { raw?: boolean }): Promise<unknown>;
6
+ public set(key: string, value: any): Client;
7
+ public delete(key: string): Client;
8
+ public list(prefix?: string): Promise<string[]>;
9
+
10
+ // Dynamic
11
+ public empty(): Client;
12
+ public getAll(): Record<any, any>;
13
+ public setAll(obj: Record<any, any>): Client;
14
+ public deleteMultiple(...args: string[]): Client;
15
+ }
node_modules/@replit/database/index.js ADDED
@@ -0,0 +1,164 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ const fetch = require("node-fetch");
2
+ const fs = require("fs");
3
+
4
+ const replitDBFilename = "/tmp/replitdb"
5
+
6
+ class Client {
7
+ /**
8
+ * Initiates Class.
9
+ * @param {String} key Custom database URL
10
+ */
11
+ constructor(key) {
12
+ if (key) {
13
+ this.key = key;
14
+ } else {
15
+ this.key = getKey();
16
+ setInterval(() => {
17
+ this.key = getKey();
18
+ }, 1000 * 60 * 60);
19
+ }
20
+ }
21
+
22
+ // Native Functions
23
+ /**
24
+ * Gets a key
25
+ * @param {String} key Key
26
+ * @param {boolean} [options.raw=false] Makes it so that we return the raw string value. Default is false.
27
+ */
28
+ async get(key, options) {
29
+ return await fetch(this.key + "/" + key)
30
+ .then((e) => e.text())
31
+ .then((strValue) => {
32
+ if (options && options.raw) {
33
+ return strValue;
34
+ }
35
+
36
+ if (!strValue) {
37
+ return null;
38
+ }
39
+
40
+ let value = strValue;
41
+ try {
42
+ // Try to parse as JSON, if it fails, we throw
43
+ value = JSON.parse(strValue);
44
+ } catch (_err) {
45
+ /*throw new SyntaxError(
46
+ `Failed to parse value of ${key}, try passing a raw option to get the raw value`
47
+ );*/
48
+ }
49
+
50
+ if (value === null || value === undefined) {
51
+ return null;
52
+ }
53
+
54
+ return value;
55
+ });
56
+ }
57
+
58
+ /**
59
+ * Sets a key
60
+ * @param {String} key Key
61
+ * @param {any} value Value
62
+ */
63
+ async set(key, value) {
64
+ const strValue = JSON.stringify(value);
65
+
66
+ await fetch(this.key, {
67
+ method: "POST",
68
+ headers: { "Content-Type": "application/x-www-form-urlencoded" },
69
+ body: encodeURIComponent(key) + "=" + encodeURIComponent(strValue),
70
+ });
71
+ return this;
72
+ }
73
+
74
+ /**
75
+ * Deletes a key
76
+ * @param {String} key Key
77
+ */
78
+ async delete(key) {
79
+ await fetch(this.key + "/" + key, { method: "DELETE" });
80
+ return this;
81
+ }
82
+
83
+ /**
84
+ * List key starting with a prefix or list all.
85
+ * @param {String} prefix Filter keys starting with prefix.
86
+ */
87
+ async list(prefix = "") {
88
+ return await fetch(
89
+ this.key + `?encode=true&prefix=${encodeURIComponent(prefix)}`
90
+ )
91
+ .then((r) => r.text())
92
+ .then((t) => {
93
+ if (t.length === 0) {
94
+ return [];
95
+ }
96
+ return t.split("\n").map(decodeURIComponent);
97
+ });
98
+ }
99
+
100
+ // Dynamic Functions
101
+ /**
102
+ * Clears the database.
103
+ */
104
+ async empty() {
105
+ const promises = [];
106
+ for (const key of await this.list()) {
107
+ promises.push(this.delete(key));
108
+ }
109
+
110
+ await Promise.all(promises);
111
+
112
+ return this;
113
+ }
114
+
115
+ /**
116
+ * Get all key/value pairs and return as an object
117
+ */
118
+ async getAll() {
119
+ let output = {};
120
+ for (const key of await this.list()) {
121
+ let value = await this.get(key);
122
+ output[key] = value;
123
+ }
124
+ return output;
125
+ }
126
+
127
+ /**
128
+ * Sets the entire database through an object.
129
+ * @param {Object} obj The object.
130
+ */
131
+ async setAll(obj) {
132
+ for (const key in obj) {
133
+ let val = obj[key];
134
+ await this.set(key, val);
135
+ }
136
+ return this;
137
+ }
138
+
139
+ /**
140
+ * Delete multiple entries by keys
141
+ * @param {Array<string>} args Keys
142
+ */
143
+ async deleteMultiple(...args) {
144
+ const promises = [];
145
+
146
+ for (const arg of args) {
147
+ promises.push(this.delete(arg));
148
+ }
149
+
150
+ await Promise.all(promises);
151
+
152
+ return this;
153
+ }
154
+ }
155
+
156
+ module.exports = Client;
157
+
158
+ function getKey() {
159
+ try {
160
+ return fs.readFileSync(replitDBFilename, "utf8");
161
+ } catch (err) {
162
+ return process.env.REPLIT_DB_URL;
163
+ }
164
+ }
node_modules/@replit/database/index.test.js ADDED
@@ -0,0 +1,88 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ const fetch = require("node-fetch");
2
+ const Client = require("./index");
3
+
4
+ let client;
5
+
6
+ beforeAll(async () => {
7
+ const pass = process.env.USE_FILE ? process.env.RIDT_PASSWORD : process.env.JWT_PASSWORD;
8
+ const url = process.env.USE_FILE ? "https://database-test-ridt.util.repl.co" : "https://database-test-jwt.util.repl.co";
9
+ const resp = await fetch(url, {
10
+ headers: {
11
+ Authorization: "Basic " + btoa("test:" + pass),
12
+ },
13
+ });
14
+ const token = await resp.text();
15
+ client = new Client(token);
16
+ await client.empty();
17
+ });
18
+
19
+ afterEach(async () => {
20
+ await client.empty();
21
+ });
22
+
23
+ test("create a client with a key", async () => {
24
+ expect(client).toBeTruthy();
25
+ expect(typeof client.key).toBe("string");
26
+ });
27
+
28
+ test("sets a value", async () => {
29
+ expect(await client.set("key", "value")).toEqual(client);
30
+ expect(await client.setAll({ key: "value", second: "secondThing" })).toEqual(
31
+ client
32
+ );
33
+ });
34
+
35
+ test("list keys", async () => {
36
+ await client.setAll({
37
+ key: "value",
38
+ second: "secondThing",
39
+ });
40
+
41
+ const result = await client.list();
42
+ const expected = ["key", "second"]
43
+ expect(result).toEqual(expect.arrayContaining(expected));
44
+
45
+ });
46
+
47
+ test("gets a value", async () => {
48
+ await client.setAll({
49
+ key: "value",
50
+ });
51
+
52
+ expect(await client.getAll()).toEqual({ key: "value" });
53
+ });
54
+
55
+ test("delete a value", async () => {
56
+ await client.setAll({
57
+ key: "value",
58
+ deleteThis: "please",
59
+ somethingElse: "in delete multiple",
60
+ andAnother: "again same thing",
61
+ });
62
+
63
+ expect(await client.delete("deleteThis")).toEqual(client);
64
+ expect(await client.deleteMultiple("somethingElse", "andAnother")).toEqual(
65
+ client
66
+ );
67
+ expect(await client.list()).toEqual(["key"]);
68
+ expect(await client.empty()).toEqual(client);
69
+ expect(await client.list()).toEqual([]);
70
+ });
71
+
72
+ test("list keys with newline", async () => {
73
+ await client.setAll({
74
+ "key\nwit": "first",
75
+ keywidout: "second",
76
+ });
77
+
78
+ const expected = ["keywidout", "key\nwit"];
79
+ const result = await client.list();
80
+
81
+ expect(result).toEqual(expect.arrayContaining(expected));
82
+ });
83
+
84
+ test("ensure that we escape values when setting", async () => {
85
+ expect(await client.set("a", "1;b=2")).toEqual(client);
86
+ expect(await client.list()).toEqual(["a"])
87
+ expect(await client.get("a")).toEqual("1;b=2")
88
+ });
node_modules/@replit/database/package.json ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "@replit/database",
3
+ "version": "2.0.5",
4
+ "description": "Client for Repl.it Database",
5
+ "main": "index.js",
6
+ "scripts": {
7
+ "test": "jest"
8
+ },
9
+ "contributors": [
10
+ {
11
+ "name": "Junhao Zhang",
12
+ "url": "https://github.com/mrlapizgithub/repl.it-db"
13
+ }
14
+ ],
15
+ "license": "MIT",
16
+ "repository": {
17
+ "type": "git",
18
+ "url": "https://github.com/replit/database-node.git"
19
+ },
20
+ "dependencies": {
21
+ "node-fetch": "^2.6.0"
22
+ },
23
+ "devDependencies": {
24
+ "jest": "^26.1.0"
25
+ }
26
+ }
node_modules/accepts/HISTORY.md ADDED
@@ -0,0 +1,243 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 1.3.8 / 2022-02-02
2
+ ==================
3
+
4
+ * deps: mime-types@~2.1.34
5
+ - deps: mime-db@~1.51.0
6
+ * deps: negotiator@0.6.3
7
+
8
+ 1.3.7 / 2019-04-29
9
+ ==================
10
+
11
+ * deps: negotiator@0.6.2
12
+ - Fix sorting charset, encoding, and language with extra parameters
13
+
14
+ 1.3.6 / 2019-04-28
15
+ ==================
16
+
17
+ * deps: mime-types@~2.1.24
18
+ - deps: mime-db@~1.40.0
19
+
20
+ 1.3.5 / 2018-02-28
21
+ ==================
22
+
23
+ * deps: mime-types@~2.1.18
24
+ - deps: mime-db@~1.33.0
25
+
26
+ 1.3.4 / 2017-08-22
27
+ ==================
28
+
29
+ * deps: mime-types@~2.1.16
30
+ - deps: mime-db@~1.29.0
31
+
32
+ 1.3.3 / 2016-05-02
33
+ ==================
34
+
35
+ * deps: mime-types@~2.1.11
36
+ - deps: mime-db@~1.23.0
37
+ * deps: negotiator@0.6.1
38
+ - perf: improve `Accept` parsing speed
39
+ - perf: improve `Accept-Charset` parsing speed
40
+ - perf: improve `Accept-Encoding` parsing speed
41
+ - perf: improve `Accept-Language` parsing speed
42
+
43
+ 1.3.2 / 2016-03-08
44
+ ==================
45
+
46
+ * deps: mime-types@~2.1.10
47
+ - Fix extension of `application/dash+xml`
48
+ - Update primary extension for `audio/mp4`
49
+ - deps: mime-db@~1.22.0
50
+
51
+ 1.3.1 / 2016-01-19
52
+ ==================
53
+
54
+ * deps: mime-types@~2.1.9
55
+ - deps: mime-db@~1.21.0
56
+
57
+ 1.3.0 / 2015-09-29
58
+ ==================
59
+
60
+ * deps: mime-types@~2.1.7
61
+ - deps: mime-db@~1.19.0
62
+ * deps: negotiator@0.6.0
63
+ - Fix including type extensions in parameters in `Accept` parsing
64
+ - Fix parsing `Accept` parameters with quoted equals
65
+ - Fix parsing `Accept` parameters with quoted semicolons
66
+ - Lazy-load modules from main entry point
67
+ - perf: delay type concatenation until needed
68
+ - perf: enable strict mode
69
+ - perf: hoist regular expressions
70
+ - perf: remove closures getting spec properties
71
+ - perf: remove a closure from media type parsing
72
+ - perf: remove property delete from media type parsing
73
+
74
+ 1.2.13 / 2015-09-06
75
+ ===================
76
+
77
+ * deps: mime-types@~2.1.6
78
+ - deps: mime-db@~1.18.0
79
+
80
+ 1.2.12 / 2015-07-30
81
+ ===================
82
+
83
+ * deps: mime-types@~2.1.4
84
+ - deps: mime-db@~1.16.0
85
+
86
+ 1.2.11 / 2015-07-16
87
+ ===================
88
+
89
+ * deps: mime-types@~2.1.3
90
+ - deps: mime-db@~1.15.0
91
+
92
+ 1.2.10 / 2015-07-01
93
+ ===================
94
+
95
+ * deps: mime-types@~2.1.2
96
+ - deps: mime-db@~1.14.0
97
+
98
+ 1.2.9 / 2015-06-08
99
+ ==================
100
+
101
+ * deps: mime-types@~2.1.1
102
+ - perf: fix deopt during mapping
103
+
104
+ 1.2.8 / 2015-06-07
105
+ ==================
106
+
107
+ * deps: mime-types@~2.1.0
108
+ - deps: mime-db@~1.13.0
109
+ * perf: avoid argument reassignment & argument slice
110
+ * perf: avoid negotiator recursive construction
111
+ * perf: enable strict mode
112
+ * perf: remove unnecessary bitwise operator
113
+
114
+ 1.2.7 / 2015-05-10
115
+ ==================
116
+
117
+ * deps: negotiator@0.5.3
118
+ - Fix media type parameter matching to be case-insensitive
119
+
120
+ 1.2.6 / 2015-05-07
121
+ ==================
122
+
123
+ * deps: mime-types@~2.0.11
124
+ - deps: mime-db@~1.9.1
125
+ * deps: negotiator@0.5.2
126
+ - Fix comparing media types with quoted values
127
+ - Fix splitting media types with quoted commas
128
+
129
+ 1.2.5 / 2015-03-13
130
+ ==================
131
+
132
+ * deps: mime-types@~2.0.10
133
+ - deps: mime-db@~1.8.0
134
+
135
+ 1.2.4 / 2015-02-14
136
+ ==================
137
+
138
+ * Support Node.js 0.6
139
+ * deps: mime-types@~2.0.9
140
+ - deps: mime-db@~1.7.0
141
+ * deps: negotiator@0.5.1
142
+ - Fix preference sorting to be stable for long acceptable lists
143
+
144
+ 1.2.3 / 2015-01-31
145
+ ==================
146
+
147
+ * deps: mime-types@~2.0.8
148
+ - deps: mime-db@~1.6.0
149
+
150
+ 1.2.2 / 2014-12-30
151
+ ==================
152
+
153
+ * deps: mime-types@~2.0.7
154
+ - deps: mime-db@~1.5.0
155
+
156
+ 1.2.1 / 2014-12-30
157
+ ==================
158
+
159
+ * deps: mime-types@~2.0.5
160
+ - deps: mime-db@~1.3.1
161
+
162
+ 1.2.0 / 2014-12-19
163
+ ==================
164
+
165
+ * deps: negotiator@0.5.0
166
+ - Fix list return order when large accepted list
167
+ - Fix missing identity encoding when q=0 exists
168
+ - Remove dynamic building of Negotiator class
169
+
170
+ 1.1.4 / 2014-12-10
171
+ ==================
172
+
173
+ * deps: mime-types@~2.0.4
174
+ - deps: mime-db@~1.3.0
175
+
176
+ 1.1.3 / 2014-11-09
177
+ ==================
178
+
179
+ * deps: mime-types@~2.0.3
180
+ - deps: mime-db@~1.2.0
181
+
182
+ 1.1.2 / 2014-10-14
183
+ ==================
184
+
185
+ * deps: negotiator@0.4.9
186
+ - Fix error when media type has invalid parameter
187
+
188
+ 1.1.1 / 2014-09-28
189
+ ==================
190
+
191
+ * deps: mime-types@~2.0.2
192
+ - deps: mime-db@~1.1.0
193
+ * deps: negotiator@0.4.8
194
+ - Fix all negotiations to be case-insensitive
195
+ - Stable sort preferences of same quality according to client order
196
+
197
+ 1.1.0 / 2014-09-02
198
+ ==================
199
+
200
+ * update `mime-types`
201
+
202
+ 1.0.7 / 2014-07-04
203
+ ==================
204
+
205
+ * Fix wrong type returned from `type` when match after unknown extension
206
+
207
+ 1.0.6 / 2014-06-24
208
+ ==================
209
+
210
+ * deps: negotiator@0.4.7
211
+
212
+ 1.0.5 / 2014-06-20
213
+ ==================
214
+
215
+ * fix crash when unknown extension given
216
+
217
+ 1.0.4 / 2014-06-19
218
+ ==================
219
+
220
+ * use `mime-types`
221
+
222
+ 1.0.3 / 2014-06-11
223
+ ==================
224
+
225
+ * deps: negotiator@0.4.6
226
+ - Order by specificity when quality is the same
227
+
228
+ 1.0.2 / 2014-05-29
229
+ ==================
230
+
231
+ * Fix interpretation when header not in request
232
+ * deps: pin negotiator@0.4.5
233
+
234
+ 1.0.1 / 2014-01-18
235
+ ==================
236
+
237
+ * Identity encoding isn't always acceptable
238
+ * deps: negotiator@~0.4.0
239
+
240
+ 1.0.0 / 2013-12-27
241
+ ==================
242
+
243
+ * Genesis
node_modules/accepts/LICENSE ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ (The MIT License)
2
+
3
+ Copyright (c) 2014 Jonathan Ong <me@jongleberry.com>
4
+ Copyright (c) 2015 Douglas Christopher Wilson <doug@somethingdoug.com>
5
+
6
+ Permission is hereby granted, free of charge, to any person obtaining
7
+ a copy of this software and associated documentation files (the
8
+ 'Software'), to deal in the Software without restriction, including
9
+ without limitation the rights to use, copy, modify, merge, publish,
10
+ distribute, sublicense, and/or sell copies of the Software, and to
11
+ permit persons to whom the Software is furnished to do so, subject to
12
+ the following conditions:
13
+
14
+ The above copyright notice and this permission notice shall be
15
+ included in all copies or substantial portions of the Software.
16
+
17
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
18
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
19
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
20
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
21
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
22
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
23
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
node_modules/accepts/README.md ADDED
@@ -0,0 +1,140 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # accepts
2
+
3
+ [![NPM Version][npm-version-image]][npm-url]
4
+ [![NPM Downloads][npm-downloads-image]][npm-url]
5
+ [![Node.js Version][node-version-image]][node-version-url]
6
+ [![Build Status][github-actions-ci-image]][github-actions-ci-url]
7
+ [![Test Coverage][coveralls-image]][coveralls-url]
8
+
9
+ Higher level content negotiation based on [negotiator](https://www.npmjs.com/package/negotiator).
10
+ Extracted from [koa](https://www.npmjs.com/package/koa) for general use.
11
+
12
+ In addition to negotiator, it allows:
13
+
14
+ - Allows types as an array or arguments list, ie `(['text/html', 'application/json'])`
15
+ as well as `('text/html', 'application/json')`.
16
+ - Allows type shorthands such as `json`.
17
+ - Returns `false` when no types match
18
+ - Treats non-existent headers as `*`
19
+
20
+ ## Installation
21
+
22
+ This is a [Node.js](https://nodejs.org/en/) module available through the
23
+ [npm registry](https://www.npmjs.com/). Installation is done using the
24
+ [`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally):
25
+
26
+ ```sh
27
+ $ npm install accepts
28
+ ```
29
+
30
+ ## API
31
+
32
+ ```js
33
+ var accepts = require('accepts')
34
+ ```
35
+
36
+ ### accepts(req)
37
+
38
+ Create a new `Accepts` object for the given `req`.
39
+
40
+ #### .charset(charsets)
41
+
42
+ Return the first accepted charset. If nothing in `charsets` is accepted,
43
+ then `false` is returned.
44
+
45
+ #### .charsets()
46
+
47
+ Return the charsets that the request accepts, in the order of the client's
48
+ preference (most preferred first).
49
+
50
+ #### .encoding(encodings)
51
+
52
+ Return the first accepted encoding. If nothing in `encodings` is accepted,
53
+ then `false` is returned.
54
+
55
+ #### .encodings()
56
+
57
+ Return the encodings that the request accepts, in the order of the client's
58
+ preference (most preferred first).
59
+
60
+ #### .language(languages)
61
+
62
+ Return the first accepted language. If nothing in `languages` is accepted,
63
+ then `false` is returned.
64
+
65
+ #### .languages()
66
+
67
+ Return the languages that the request accepts, in the order of the client's
68
+ preference (most preferred first).
69
+
70
+ #### .type(types)
71
+
72
+ Return the first accepted type (and it is returned as the same text as what
73
+ appears in the `types` array). If nothing in `types` is accepted, then `false`
74
+ is returned.
75
+
76
+ The `types` array can contain full MIME types or file extensions. Any value
77
+ that is not a full MIME types is passed to `require('mime-types').lookup`.
78
+
79
+ #### .types()
80
+
81
+ Return the types that the request accepts, in the order of the client's
82
+ preference (most preferred first).
83
+
84
+ ## Examples
85
+
86
+ ### Simple type negotiation
87
+
88
+ This simple example shows how to use `accepts` to return a different typed
89
+ respond body based on what the client wants to accept. The server lists it's
90
+ preferences in order and will get back the best match between the client and
91
+ server.
92
+
93
+ ```js
94
+ var accepts = require('accepts')
95
+ var http = require('http')
96
+
97
+ function app (req, res) {
98
+ var accept = accepts(req)
99
+
100
+ // the order of this list is significant; should be server preferred order
101
+ switch (accept.type(['json', 'html'])) {
102
+ case 'json':
103
+ res.setHeader('Content-Type', 'application/json')
104
+ res.write('{"hello":"world!"}')
105
+ break
106
+ case 'html':
107
+ res.setHeader('Content-Type', 'text/html')
108
+ res.write('<b>hello, world!</b>')
109
+ break
110
+ default:
111
+ // the fallback is text/plain, so no need to specify it above
112
+ res.setHeader('Content-Type', 'text/plain')
113
+ res.write('hello, world!')
114
+ break
115
+ }
116
+
117
+ res.end()
118
+ }
119
+
120
+ http.createServer(app).listen(3000)
121
+ ```
122
+
123
+ You can test this out with the cURL program:
124
+ ```sh
125
+ curl -I -H'Accept: text/html' http://localhost:3000/
126
+ ```
127
+
128
+ ## License
129
+
130
+ [MIT](LICENSE)
131
+
132
+ [coveralls-image]: https://badgen.net/coveralls/c/github/jshttp/accepts/master
133
+ [coveralls-url]: https://coveralls.io/r/jshttp/accepts?branch=master
134
+ [github-actions-ci-image]: https://badgen.net/github/checks/jshttp/accepts/master?label=ci
135
+ [github-actions-ci-url]: https://github.com/jshttp/accepts/actions/workflows/ci.yml
136
+ [node-version-image]: https://badgen.net/npm/node/accepts
137
+ [node-version-url]: https://nodejs.org/en/download
138
+ [npm-downloads-image]: https://badgen.net/npm/dm/accepts
139
+ [npm-url]: https://npmjs.org/package/accepts
140
+ [npm-version-image]: https://badgen.net/npm/v/accepts
node_modules/accepts/index.js ADDED
@@ -0,0 +1,238 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * accepts
3
+ * Copyright(c) 2014 Jonathan Ong
4
+ * Copyright(c) 2015 Douglas Christopher Wilson
5
+ * MIT Licensed
6
+ */
7
+
8
+ 'use strict'
9
+
10
+ /**
11
+ * Module dependencies.
12
+ * @private
13
+ */
14
+
15
+ var Negotiator = require('negotiator')
16
+ var mime = require('mime-types')
17
+
18
+ /**
19
+ * Module exports.
20
+ * @public
21
+ */
22
+
23
+ module.exports = Accepts
24
+
25
+ /**
26
+ * Create a new Accepts object for the given req.
27
+ *
28
+ * @param {object} req
29
+ * @public
30
+ */
31
+
32
+ function Accepts (req) {
33
+ if (!(this instanceof Accepts)) {
34
+ return new Accepts(req)
35
+ }
36
+
37
+ this.headers = req.headers
38
+ this.negotiator = new Negotiator(req)
39
+ }
40
+
41
+ /**
42
+ * Check if the given `type(s)` is acceptable, returning
43
+ * the best match when true, otherwise `undefined`, in which
44
+ * case you should respond with 406 "Not Acceptable".
45
+ *
46
+ * The `type` value may be a single mime type string
47
+ * such as "application/json", the extension name
48
+ * such as "json" or an array `["json", "html", "text/plain"]`. When a list
49
+ * or array is given the _best_ match, if any is returned.
50
+ *
51
+ * Examples:
52
+ *
53
+ * // Accept: text/html
54
+ * this.types('html');
55
+ * // => "html"
56
+ *
57
+ * // Accept: text/*, application/json
58
+ * this.types('html');
59
+ * // => "html"
60
+ * this.types('text/html');
61
+ * // => "text/html"
62
+ * this.types('json', 'text');
63
+ * // => "json"
64
+ * this.types('application/json');
65
+ * // => "application/json"
66
+ *
67
+ * // Accept: text/*, application/json
68
+ * this.types('image/png');
69
+ * this.types('png');
70
+ * // => undefined
71
+ *
72
+ * // Accept: text/*;q=.5, application/json
73
+ * this.types(['html', 'json']);
74
+ * this.types('html', 'json');
75
+ * // => "json"
76
+ *
77
+ * @param {String|Array} types...
78
+ * @return {String|Array|Boolean}
79
+ * @public
80
+ */
81
+
82
+ Accepts.prototype.type =
83
+ Accepts.prototype.types = function (types_) {
84
+ var types = types_
85
+
86
+ // support flattened arguments
87
+ if (types && !Array.isArray(types)) {
88
+ types = new Array(arguments.length)
89
+ for (var i = 0; i < types.length; i++) {
90
+ types[i] = arguments[i]
91
+ }
92
+ }
93
+
94
+ // no types, return all requested types
95
+ if (!types || types.length === 0) {
96
+ return this.negotiator.mediaTypes()
97
+ }
98
+
99
+ // no accept header, return first given type
100
+ if (!this.headers.accept) {
101
+ return types[0]
102
+ }
103
+
104
+ var mimes = types.map(extToMime)
105
+ var accepts = this.negotiator.mediaTypes(mimes.filter(validMime))
106
+ var first = accepts[0]
107
+
108
+ return first
109
+ ? types[mimes.indexOf(first)]
110
+ : false
111
+ }
112
+
113
+ /**
114
+ * Return accepted encodings or best fit based on `encodings`.
115
+ *
116
+ * Given `Accept-Encoding: gzip, deflate`
117
+ * an array sorted by quality is returned:
118
+ *
119
+ * ['gzip', 'deflate']
120
+ *
121
+ * @param {String|Array} encodings...
122
+ * @return {String|Array}
123
+ * @public
124
+ */
125
+
126
+ Accepts.prototype.encoding =
127
+ Accepts.prototype.encodings = function (encodings_) {
128
+ var encodings = encodings_
129
+
130
+ // support flattened arguments
131
+ if (encodings && !Array.isArray(encodings)) {
132
+ encodings = new Array(arguments.length)
133
+ for (var i = 0; i < encodings.length; i++) {
134
+ encodings[i] = arguments[i]
135
+ }
136
+ }
137
+
138
+ // no encodings, return all requested encodings
139
+ if (!encodings || encodings.length === 0) {
140
+ return this.negotiator.encodings()
141
+ }
142
+
143
+ return this.negotiator.encodings(encodings)[0] || false
144
+ }
145
+
146
+ /**
147
+ * Return accepted charsets or best fit based on `charsets`.
148
+ *
149
+ * Given `Accept-Charset: utf-8, iso-8859-1;q=0.2, utf-7;q=0.5`
150
+ * an array sorted by quality is returned:
151
+ *
152
+ * ['utf-8', 'utf-7', 'iso-8859-1']
153
+ *
154
+ * @param {String|Array} charsets...
155
+ * @return {String|Array}
156
+ * @public
157
+ */
158
+
159
+ Accepts.prototype.charset =
160
+ Accepts.prototype.charsets = function (charsets_) {
161
+ var charsets = charsets_
162
+
163
+ // support flattened arguments
164
+ if (charsets && !Array.isArray(charsets)) {
165
+ charsets = new Array(arguments.length)
166
+ for (var i = 0; i < charsets.length; i++) {
167
+ charsets[i] = arguments[i]
168
+ }
169
+ }
170
+
171
+ // no charsets, return all requested charsets
172
+ if (!charsets || charsets.length === 0) {
173
+ return this.negotiator.charsets()
174
+ }
175
+
176
+ return this.negotiator.charsets(charsets)[0] || false
177
+ }
178
+
179
+ /**
180
+ * Return accepted languages or best fit based on `langs`.
181
+ *
182
+ * Given `Accept-Language: en;q=0.8, es, pt`
183
+ * an array sorted by quality is returned:
184
+ *
185
+ * ['es', 'pt', 'en']
186
+ *
187
+ * @param {String|Array} langs...
188
+ * @return {Array|String}
189
+ * @public
190
+ */
191
+
192
+ Accepts.prototype.lang =
193
+ Accepts.prototype.langs =
194
+ Accepts.prototype.language =
195
+ Accepts.prototype.languages = function (languages_) {
196
+ var languages = languages_
197
+
198
+ // support flattened arguments
199
+ if (languages && !Array.isArray(languages)) {
200
+ languages = new Array(arguments.length)
201
+ for (var i = 0; i < languages.length; i++) {
202
+ languages[i] = arguments[i]
203
+ }
204
+ }
205
+
206
+ // no languages, return all requested languages
207
+ if (!languages || languages.length === 0) {
208
+ return this.negotiator.languages()
209
+ }
210
+
211
+ return this.negotiator.languages(languages)[0] || false
212
+ }
213
+
214
+ /**
215
+ * Convert extnames to mime.
216
+ *
217
+ * @param {String} type
218
+ * @return {String}
219
+ * @private
220
+ */
221
+
222
+ function extToMime (type) {
223
+ return type.indexOf('/') === -1
224
+ ? mime.lookup(type)
225
+ : type
226
+ }
227
+
228
+ /**
229
+ * Check if mime is valid.
230
+ *
231
+ * @param {String} type
232
+ * @return {String}
233
+ * @private
234
+ */
235
+
236
+ function validMime (type) {
237
+ return typeof type === 'string'
238
+ }
node_modules/accepts/package.json ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "accepts",
3
+ "description": "Higher-level content negotiation",
4
+ "version": "1.3.8",
5
+ "contributors": [
6
+ "Douglas Christopher Wilson <doug@somethingdoug.com>",
7
+ "Jonathan Ong <me@jongleberry.com> (http://jongleberry.com)"
8
+ ],
9
+ "license": "MIT",
10
+ "repository": "jshttp/accepts",
11
+ "dependencies": {
12
+ "mime-types": "~2.1.34",
13
+ "negotiator": "0.6.3"
14
+ },
15
+ "devDependencies": {
16
+ "deep-equal": "1.0.1",
17
+ "eslint": "7.32.0",
18
+ "eslint-config-standard": "14.1.1",
19
+ "eslint-plugin-import": "2.25.4",
20
+ "eslint-plugin-markdown": "2.2.1",
21
+ "eslint-plugin-node": "11.1.0",
22
+ "eslint-plugin-promise": "4.3.1",
23
+ "eslint-plugin-standard": "4.1.0",
24
+ "mocha": "9.2.0",
25
+ "nyc": "15.1.0"
26
+ },
27
+ "files": [
28
+ "LICENSE",
29
+ "HISTORY.md",
30
+ "index.js"
31
+ ],
32
+ "engines": {
33
+ "node": ">= 0.6"
34
+ },
35
+ "scripts": {
36
+ "lint": "eslint .",
37
+ "test": "mocha --reporter spec --check-leaks --bail test/",
38
+ "test-ci": "nyc --reporter=lcov --reporter=text npm test",
39
+ "test-cov": "nyc --reporter=html --reporter=text npm test"
40
+ },
41
+ "keywords": [
42
+ "content",
43
+ "negotiation",
44
+ "accept",
45
+ "accepts"
46
+ ]
47
+ }
node_modules/array-flatten/LICENSE ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2014 Blake Embrey (hello@blakeembrey.com)
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
node_modules/array-flatten/README.md ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Array Flatten
2
+
3
+ [![NPM version][npm-image]][npm-url]
4
+ [![NPM downloads][downloads-image]][downloads-url]
5
+ [![Build status][travis-image]][travis-url]
6
+ [![Test coverage][coveralls-image]][coveralls-url]
7
+
8
+ > Flatten an array of nested arrays into a single flat array. Accepts an optional depth.
9
+
10
+ ## Installation
11
+
12
+ ```
13
+ npm install array-flatten --save
14
+ ```
15
+
16
+ ## Usage
17
+
18
+ ```javascript
19
+ var flatten = require('array-flatten')
20
+
21
+ flatten([1, [2, [3, [4, [5], 6], 7], 8], 9])
22
+ //=> [1, 2, 3, 4, 5, 6, 7, 8, 9]
23
+
24
+ flatten([1, [2, [3, [4, [5], 6], 7], 8], 9], 2)
25
+ //=> [1, 2, 3, [4, [5], 6], 7, 8, 9]
26
+
27
+ (function () {
28
+ flatten(arguments) //=> [1, 2, 3]
29
+ })(1, [2, 3])
30
+ ```
31
+
32
+ ## License
33
+
34
+ MIT
35
+
36
+ [npm-image]: https://img.shields.io/npm/v/array-flatten.svg?style=flat
37
+ [npm-url]: https://npmjs.org/package/array-flatten
38
+ [downloads-image]: https://img.shields.io/npm/dm/array-flatten.svg?style=flat
39
+ [downloads-url]: https://npmjs.org/package/array-flatten
40
+ [travis-image]: https://img.shields.io/travis/blakeembrey/array-flatten.svg?style=flat
41
+ [travis-url]: https://travis-ci.org/blakeembrey/array-flatten
42
+ [coveralls-image]: https://img.shields.io/coveralls/blakeembrey/array-flatten.svg?style=flat
43
+ [coveralls-url]: https://coveralls.io/r/blakeembrey/array-flatten?branch=master
node_modules/array-flatten/array-flatten.js ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 'use strict'
2
+
3
+ /**
4
+ * Expose `arrayFlatten`.
5
+ */
6
+ module.exports = arrayFlatten
7
+
8
+ /**
9
+ * Recursive flatten function with depth.
10
+ *
11
+ * @param {Array} array
12
+ * @param {Array} result
13
+ * @param {Number} depth
14
+ * @return {Array}
15
+ */
16
+ function flattenWithDepth (array, result, depth) {
17
+ for (var i = 0; i < array.length; i++) {
18
+ var value = array[i]
19
+
20
+ if (depth > 0 && Array.isArray(value)) {
21
+ flattenWithDepth(value, result, depth - 1)
22
+ } else {
23
+ result.push(value)
24
+ }
25
+ }
26
+
27
+ return result
28
+ }
29
+
30
+ /**
31
+ * Recursive flatten function. Omitting depth is slightly faster.
32
+ *
33
+ * @param {Array} array
34
+ * @param {Array} result
35
+ * @return {Array}
36
+ */
37
+ function flattenForever (array, result) {
38
+ for (var i = 0; i < array.length; i++) {
39
+ var value = array[i]
40
+
41
+ if (Array.isArray(value)) {
42
+ flattenForever(value, result)
43
+ } else {
44
+ result.push(value)
45
+ }
46
+ }
47
+
48
+ return result
49
+ }
50
+
51
+ /**
52
+ * Flatten an array, with the ability to define a depth.
53
+ *
54
+ * @param {Array} array
55
+ * @param {Number} depth
56
+ * @return {Array}
57
+ */
58
+ function arrayFlatten (array, depth) {
59
+ if (depth == null) {
60
+ return flattenForever(array, [])
61
+ }
62
+
63
+ return flattenWithDepth(array, [], depth)
64
+ }
node_modules/array-flatten/package.json ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "array-flatten",
3
+ "version": "1.1.1",
4
+ "description": "Flatten an array of nested arrays into a single flat array",
5
+ "main": "array-flatten.js",
6
+ "files": [
7
+ "array-flatten.js",
8
+ "LICENSE"
9
+ ],
10
+ "scripts": {
11
+ "test": "istanbul cover _mocha -- -R spec"
12
+ },
13
+ "repository": {
14
+ "type": "git",
15
+ "url": "git://github.com/blakeembrey/array-flatten.git"
16
+ },
17
+ "keywords": [
18
+ "array",
19
+ "flatten",
20
+ "arguments",
21
+ "depth"
22
+ ],
23
+ "author": {
24
+ "name": "Blake Embrey",
25
+ "email": "hello@blakeembrey.com",
26
+ "url": "http://blakeembrey.me"
27
+ },
28
+ "license": "MIT",
29
+ "bugs": {
30
+ "url": "https://github.com/blakeembrey/array-flatten/issues"
31
+ },
32
+ "homepage": "https://github.com/blakeembrey/array-flatten",
33
+ "devDependencies": {
34
+ "istanbul": "^0.3.13",
35
+ "mocha": "^2.2.4",
36
+ "pre-commit": "^1.0.7",
37
+ "standard": "^3.7.3"
38
+ }
39
+ }
node_modules/axios/CHANGELOG.md ADDED
@@ -0,0 +1,906 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Changelog
2
+
3
+ ### 0.26.1 (March 9, 2022)
4
+
5
+ Fixes and Functionality:
6
+ - Refactored project file structure to avoid circular imports ([##4220](https://github.com/axios/axios/pull/#4220))
7
+
8
+ ### 0.26.0 (February 13, 2022)
9
+
10
+ Fixes and Functionality:
11
+ - Fixed The timeoutErrorMessage property in config not work with Node.js ([#3581](https://github.com/axios/axios/pull/3581))
12
+ - Added errors to be displayed when the query parsing process itself fails ([#3961](https://github.com/axios/axios/pull/3961))
13
+ - Fix/remove url required ([#4426](https://github.com/axios/axios/pull/4426))
14
+ - Update follow-redirects dependency due to Vurnerbility ([#4462](https://github.com/axios/axios/pull/4462))
15
+ - Bump karma from 6.3.11 to 6.3.14 ([#4461](https://github.com/axios/axios/pull/4461))
16
+ - Bump follow-redirects from 1.14.7 to 1.14.8 ([#4473](https://github.com/axios/axios/pull/4473))
17
+
18
+ ### 0.25.0 (January 18, 2022)
19
+
20
+ Breaking changes:
21
+ - Fixing maxBodyLength enforcement ([#3786](https://github.com/axios/axios/pull/3786))
22
+ - Don't rely on strict mode behaviour for arguments ([#3470](https://github.com/axios/axios/pull/3470))
23
+ - Adding error handling when missing url ([#3791](https://github.com/axios/axios/pull/3791))
24
+ - Update isAbsoluteURL.js removing escaping of non-special characters ([#3809](https://github.com/axios/axios/pull/3809))
25
+ - Use native Array.isArray() in utils.js ([#3836](https://github.com/axios/axios/pull/3836))
26
+ - Adding error handling inside stream end callback ([#3967](https://github.com/axios/axios/pull/3967))
27
+
28
+ Fixes and Functionality:
29
+ - Added aborted even handler ([#3916](https://github.com/axios/axios/pull/3916))
30
+ - Header types expanded allowing `boolean` and `number` types ([#4144](https://github.com/axios/axios/pull/4144))
31
+ - Fix cancel signature allowing cancel message to be `undefined` ([#3153](https://github.com/axios/axios/pull/3153))
32
+ - Updated type checks to be formulated better ([#3342](https://github.com/axios/axios/pull/3342))
33
+ - Avoid unnecessary buffer allocations ([#3321](https://github.com/axios/axios/pull/3321))
34
+ - Adding a socket handler to keep TCP connection live when processing long living requests ([#3422](https://github.com/axios/axios/pull/3422))
35
+ - Added toFormData helper function ([#3757](https://github.com/axios/axios/pull/3757))
36
+ - Adding responseEncoding prop type in AxiosRequestConfig ([#3918](https://github.com/axios/axios/pull/3918))
37
+
38
+ Internal and Tests:
39
+ - Adding axios-test-instance to ecosystem ([#3786](https://github.com/axios/axios/pull/3786))
40
+ - Optimize the logic of isAxiosError ([#3546](https://github.com/axios/axios/pull/3546))
41
+ - Add tests and documentation to display how multiple inceptors work ([#3564](https://github.com/axios/axios/pull/3564))
42
+ - Updating follow-redirects to version 1.14.7 ([#4379](https://github.com/axios/axios/pull/4379))
43
+
44
+
45
+ Documentation:
46
+ - Fixing changelog to show corrext pull request ([#4219](https://github.com/axios/axios/pull/4219))
47
+ - Update upgrade guide for https proxy setting ([#3604](https://github.com/axios/axios/pull/3604))
48
+
49
+ Huge thanks to everyone who contributed to this release via code (authors listed below) or via reviews and triaging on GitHub:
50
+
51
+ - [Jay](mailto:jasonsaayman@gmail.com)
52
+ - [Rijk van Zanten](https://github.com/rijkvanzanten)
53
+ - [Kohta Ito](https://github.com/koh110)
54
+ - [Brandon Faulkner](https://github.com/bfaulk96)
55
+ - [Stefano Magni](https://github.com/NoriSte)
56
+ - [enofan](https://github.com/fanguangyi)
57
+ - [Andrey Pechkurov](https://github.com/puzpuzpuz)
58
+ - [Doowonee](https://github.com/doowonee)
59
+ - [Emil Broman](https://github.com/emilbroman-eqt)
60
+ - [Remco Haszing](https://github.com/remcohaszing)
61
+ - [Black-Hole](https://github.com/BlackHole1)
62
+ - [Wolfram Kriesing](https://github.com/wolframkriesing)
63
+ - [Andrew Ovens](https://github.com/repl-andrew-ovens)
64
+ - [Paulo Renato](https://github.com/PauloRSF)
65
+ - [Ben Carp](https://github.com/carpben)
66
+ - [Hirotaka Tagawa](https://github.com/wafuwafu13)
67
+ - [狼族小狈](https://github.com/lzxb)
68
+ - [C. Lewis](https://github.com/ctjlewis)
69
+ - [Felipe Carvalho](https://github.com/FCarvalhoVII)
70
+ - [Daniel](https://github.com/djs113)
71
+ - [Gustavo Sales](https://github.com/gussalesdev)
72
+
73
+ ### 0.24.0 (October 25, 2021)
74
+
75
+ Breaking changes:
76
+ - Revert: change type of AxiosResponse to any, please read lengthy discussion here: ([#4141](https://github.com/axios/axios/issues/4141)) pull request: ([#4186](https://github.com/axios/axios/pull/4186))
77
+
78
+ Huge thanks to everyone who contributed to this release via code (authors listed below) or via reviews and triaging on GitHub:
79
+
80
+ - [Jay](mailto:jasonsaayman@gmail.com)
81
+ - [Rodry](https://github.com/ImRodry)
82
+ - [Remco Haszing](https://github.com/remcohaszing)
83
+ - [Isaiah Thomason](https://github.com/ITenthusiasm)
84
+
85
+ ### 0.23.0 (October 12, 2021)
86
+
87
+ Breaking changes:
88
+ - Distinguish request and response data types ([#4116](https://github.com/axios/axios/pull/4116))
89
+ - Change never type to unknown ([#4142](https://github.com/axios/axios/pull/4142))
90
+ - Fixed TransitionalOptions typings ([#4147](https://github.com/axios/axios/pull/4147))
91
+
92
+ Fixes and Functionality:
93
+ - Adding globalObject: 'this' to webpack config ([#3176](https://github.com/axios/axios/pull/3176))
94
+ - Adding insecureHTTPParser type to AxiosRequestConfig ([#4066](https://github.com/axios/axios/pull/4066))
95
+ - Fix missing semicolon in typings ([#4115](https://github.com/axios/axios/pull/4115))
96
+ - Fix response headers types ([#4136](https://github.com/axios/axios/pull/4136))
97
+
98
+ Internal and Tests:
99
+ - Improve timeout error when timeout is browser default ([#3209](https://github.com/axios/axios/pull/3209))
100
+ - Fix node version on CI ([#4069](https://github.com/axios/axios/pull/4069))
101
+ - Added testing to TypeScript portion of project ([#4140](https://github.com/axios/axios/pull/4140))
102
+
103
+ Documentation:
104
+ - Rename Angular to AngularJS ([#4114](https://github.com/axios/axios/pull/4114))
105
+
106
+ Huge thanks to everyone who contributed to this release via code (authors listed below) or via reviews and triaging on GitHub:
107
+
108
+ - [Jay](mailto:jasonsaayman@gmail.com)
109
+ - [Evan-Finkelstein](https://github.com/Evan-Finkelstein)
110
+ - [Paweł Szymański](https://github.com/Jezorko)
111
+ - [Dobes Vandermeer](https://github.com/dobesv)
112
+ - [Claas Augner](https://github.com/caugner)
113
+ - [Remco Haszing](https://github.com/remcohaszing)
114
+ - [Evgeniy](https://github.com/egmen)
115
+ - [Dmitriy Mozgovoy](https://github.com/DigitalBrainJS)
116
+
117
+ ### 0.22.0 (October 01, 2021)
118
+
119
+ Fixes and Functionality:
120
+ - Caseless header comparing in HTTP adapter ([#2880](https://github.com/axios/axios/pull/2880))
121
+ - Avoid package.json import fixing issues and warnings related to this ([#4041](https://github.com/axios/axios/pull/4041)), ([#4065](https://github.com/axios/axios/pull/4065))
122
+ - Fixed cancelToken leakage and added AbortController support ([#3305](https://github.com/axios/axios/pull/3305))
123
+ - Updating CI to run on release branches
124
+ - Bump follow redirects version
125
+ - Fixed default transitional config for custom Axios instance; ([#4052](https://github.com/axios/axios/pull/4052))
126
+
127
+ Huge thanks to everyone who contributed to this release via code (authors listed below) or via reviews and triaging on GitHub:
128
+
129
+ - [Jay](mailto:jasonsaayman@gmail.com)
130
+ - [Matt R. Wilson](https://github.com/mastermatt)
131
+ - [Xianming Zhong](https://github.com/chinesedfan)
132
+ - [Dmitriy Mozgovoy](https://github.com/DigitalBrainJS)
133
+
134
+ ### 0.21.4 (September 6, 2021)
135
+
136
+ Fixes and Functionality:
137
+ - Fixing JSON transform when data is stringified. Providing backward compatability and complying to the JSON RFC standard ([#4020](https://github.com/axios/axios/pull/4020))
138
+
139
+ Huge thanks to everyone who contributed to this release via code (authors listed below) or via reviews and triaging on GitHub:
140
+
141
+ - [Jay](mailto:jasonsaayman@gmail.com)
142
+ - [Guillaume Fortaine](https://github.com/gfortaine)
143
+ - [Yusuke Kawasaki](https://github.com/kawanet)
144
+ - [Dmitriy Mozgovoy](https://github.com/DigitalBrainJS)
145
+
146
+ ### 0.21.3 (September 4, 2021)
147
+
148
+ Fixes and Functionality:
149
+ - Fixing response interceptor not being called when request interceptor is attached ([#4013](https://github.com/axios/axios/pull/4013))
150
+
151
+ Huge thanks to everyone who contributed to this release via code (authors listed below) or via reviews and triaging on GitHub:
152
+
153
+ - [Jay](mailto:jasonsaayman@gmail.com)
154
+ - [Julian Hollmann](https://github.com/nerdbeere)
155
+
156
+ ### 0.21.2 (September 4, 2021)
157
+
158
+ Fixes and Functionality:
159
+
160
+ - Updating axios requests to be delayed by pre-emptive promise creation ([#2702](https://github.com/axios/axios/pull/2702))
161
+ - Adding "synchronous" and "runWhen" options to interceptors api ([#2702](https://github.com/axios/axios/pull/2702))
162
+ - Updating of transformResponse ([#3377](https://github.com/axios/axios/pull/3377))
163
+ - Adding ability to omit User-Agent header ([#3703](https://github.com/axios/axios/pull/3703))
164
+ - Adding multiple JSON improvements ([#3688](https://github.com/axios/axios/pull/3688), [#3763](https://github.com/axios/axios/pull/3763))
165
+ - Fixing quadratic runtime and extra memory usage when setting a maxContentLength ([#3738](https://github.com/axios/axios/pull/3738))
166
+ - Adding parseInt to config.timeout ([#3781](https://github.com/axios/axios/pull/3781))
167
+ - Adding custom return type support to interceptor ([#3783](https://github.com/axios/axios/pull/3783))
168
+ - Adding security fix for ReDoS vulnerability ([#3980](https://github.com/axios/axios/pull/3980))
169
+
170
+ Internal and Tests:
171
+
172
+ - Updating build dev dependancies ([#3401](https://github.com/axios/axios/pull/3401))
173
+ - Fixing builds running on Travis CI ([#3538](https://github.com/axios/axios/pull/3538))
174
+ - Updating follow rediect version ([#3694](https://github.com/axios/axios/pull/3694), [#3771](https://github.com/axios/axios/pull/3771))
175
+ - Updating karma sauce launcher to fix failing sauce tests ([#3712](https://github.com/axios/axios/pull/3712), [#3717](https://github.com/axios/axios/pull/3717))
176
+ - Updating content-type header for application/json to not contain charset field, according do RFC 8259 ([#2154](https://github.com/axios/axios/pull/2154))
177
+ - Fixing tests by bumping karma-sauce-launcher version ([#3813](https://github.com/axios/axios/pull/3813))
178
+ - Changing testing process from Travis CI to GitHub Actions ([#3938](https://github.com/axios/axios/pull/3938))
179
+
180
+ Documentation:
181
+
182
+ - Updating documentation around the use of `AUTH_TOKEN` with multiple domain endpoints ([#3539](https://github.com/axios/axios/pull/3539))
183
+ - Remove duplication of item in changelog ([#3523](https://github.com/axios/axios/pull/3523))
184
+ - Fixing gramatical errors ([#2642](https://github.com/axios/axios/pull/2642))
185
+ - Fixing spelling error ([#3567](https://github.com/axios/axios/pull/3567))
186
+ - Moving gitpod metion ([#2637](https://github.com/axios/axios/pull/2637))
187
+ - Adding new axios documentation website link ([#3681](https://github.com/axios/axios/pull/3681), [#3707](https://github.com/axios/axios/pull/3707))
188
+ - Updating documentation around dispatching requests ([#3772](https://github.com/axios/axios/pull/3772))
189
+ - Adding documentation for the type guard isAxiosError ([#3767](https://github.com/axios/axios/pull/3767))
190
+ - Adding explanation of cancel token ([#3803](https://github.com/axios/axios/pull/3803))
191
+ - Updating CI status badge ([#3953](https://github.com/axios/axios/pull/3953))
192
+ - Fixing errors with JSON documentation ([#3936](https://github.com/axios/axios/pull/3936))
193
+ - Fixing README typo under Request Config ([#3825](https://github.com/axios/axios/pull/3825))
194
+ - Adding axios-multi-api to the ecosystem file ([#3817](https://github.com/axios/axios/pull/3817))
195
+ - Adding SECURITY.md to properly disclose security vulnerabilities ([#3981](https://github.com/axios/axios/pull/3981))
196
+
197
+ Huge thanks to everyone who contributed to this release via code (authors listed below) or via reviews and triaging on GitHub:
198
+
199
+ - [Jay](mailto:jasonsaayman@gmail.com)
200
+ - [Sasha Korotkov](https://github.com/SashaKoro)
201
+ - [Daniel Lopretto](https://github.com/timemachine3030)
202
+ - [Mike Bishop](https://github.com/MikeBishop)
203
+ - [Dmitriy Mozgovoy](https://github.com/DigitalBrainJS)
204
+ - [Mark](https://github.com/bimbiltu)
205
+ - [Philipe Gouveia Paixão](https://github.com/piiih)
206
+ - [hippo](https://github.com/hippo2cat)
207
+ - [ready-research](https://github.com/ready-research)
208
+ - [Xianming Zhong](https://github.com/chinesedfan)
209
+ - [Christopher Chrapka](https://github.com/OJezu)
210
+ - [Brian Anglin](https://github.com/anglinb)
211
+ - [Kohta Ito](https://github.com/koh110)
212
+ - [Ali Clark](https://github.com/aliclark)
213
+ - [caikan](https://github.com/caikan)
214
+ - [Elina Gorshkova](https://github.com/elinagorshkova)
215
+ - [Ryota Ikezawa](https://github.com/paveg)
216
+ - [Nisar Hassan Naqvi](https://github.com/nisarhassan12)
217
+ - [Jake](https://github.com/codemaster138)
218
+ - [TagawaHirotaka](https://github.com/wafuwafu13)
219
+ - [Johannes Jarbratt](https://github.com/johachi)
220
+ - [Mo Sattler](https://github.com/MoSattler)
221
+ - [Sam Carlton](https://github.com/ThatGuySam)
222
+ - [Matt Czapliński](https://github.com/MattCCC)
223
+ - [Ziding Zhang](https://github.com/zidingz)
224
+
225
+ ### 0.21.1 (December 21, 2020)
226
+
227
+ Fixes and Functionality:
228
+
229
+ - Hotfix: Prevent SSRF ([#3410](https://github.com/axios/axios/pull/3410))
230
+ - Protocol not parsed when setting proxy config from env vars ([#3070](https://github.com/axios/axios/pull/3070))
231
+ - Updating axios in types to be lower case ([#2797](https://github.com/axios/axios/pull/2797))
232
+ - Adding a type guard for `AxiosError` ([#2949](https://github.com/axios/axios/pull/2949))
233
+
234
+ Internal and Tests:
235
+
236
+ - Remove the skipping of the `socket` http test ([#3364](https://github.com/axios/axios/pull/3364))
237
+ - Use different socket for Win32 test ([#3375](https://github.com/axios/axios/pull/3375))
238
+
239
+ Huge thanks to everyone who contributed to this release via code (authors listed below) or via reviews and triaging on GitHub:
240
+
241
+ - Daniel Lopretto <timemachine3030@users.noreply.github.com>
242
+ - Jason Kwok <JasonHK@users.noreply.github.com>
243
+ - Jay <jasonsaayman@gmail.com>
244
+ - Jonathan Foster <jonathan@jonathanfoster.io>
245
+ - Remco Haszing <remcohaszing@gmail.com>
246
+ - Xianming Zhong <chinesedfan@qq.com>
247
+
248
+ ### 0.21.0 (October 23, 2020)
249
+
250
+ Fixes and Functionality:
251
+
252
+ - Fixing requestHeaders.Authorization ([#3287](https://github.com/axios/axios/pull/3287))
253
+ - Fixing node types ([#3237](https://github.com/axios/axios/pull/3237))
254
+ - Fixing axios.delete ignores config.data ([#3282](https://github.com/axios/axios/pull/3282))
255
+ - Revert "Fixing overwrite Blob/File type as Content-Type in browser. (#1773)" ([#3289](https://github.com/axios/axios/pull/3289))
256
+ - Fixing an issue that type 'null' and 'undefined' is not assignable to validateStatus when typescript strict option is enabled ([#3200](https://github.com/axios/axios/pull/3200))
257
+
258
+ Internal and Tests:
259
+
260
+ - Lock travis to not use node v15 ([#3361](https://github.com/axios/axios/pull/3361))
261
+
262
+ Documentation:
263
+
264
+ - Fixing simple typo, existant -> existent ([#3252](https://github.com/axios/axios/pull/3252))
265
+ - Fixing typos ([#3309](https://github.com/axios/axios/pull/3309))
266
+
267
+ Huge thanks to everyone who contributed to this release via code (authors listed below) or via reviews and triaging on GitHub:
268
+
269
+ - Allan Cruz <57270969+Allanbcruz@users.noreply.github.com>
270
+ - George Cheng <Gerhut@GMail.com>
271
+ - Jay <jasonsaayman@gmail.com>
272
+ - Kevin Kirsche <Kev.Kirsche+GitHub@gmail.com>
273
+ - Remco Haszing <remcohaszing@gmail.com>
274
+ - Taemin Shin <cprayer13@gmail.com>
275
+ - Tim Gates <tim.gates@iress.com>
276
+ - Xianming Zhong <chinesedfan@qq.com>
277
+
278
+ ### 0.20.0 (August 20, 2020)
279
+
280
+ Release of 0.20.0-pre as a full release with no other changes.
281
+
282
+ ### 0.20.0-pre (July 15, 2020)
283
+
284
+ Fixes and Functionality:
285
+
286
+ - Fixing response with utf-8 BOM can not parse to json ([#2419](https://github.com/axios/axios/pull/2419))
287
+ - fix: remove byte order marker (UTF-8 BOM) when transform response
288
+ - fix: remove BOM only utf-8
289
+ - test: utf-8 BOM
290
+ - fix: incorrect param name
291
+ - Refactor mergeConfig without utils.deepMerge ([#2844](https://github.com/axios/axios/pull/2844))
292
+ - Adding failing test
293
+ - Fixing #2587 default custom config persisting
294
+ - Adding Concat keys and filter duplicates
295
+ - Fixed value from CPE
296
+ - update for review feedbacks
297
+ - no deepMerge
298
+ - only merge between plain objects
299
+ - fix rename
300
+ - always merge config by mergeConfig
301
+ - extract function mergeDeepProperties
302
+ - refactor mergeConfig with all keys, and add special logic for validateStatus
303
+ - add test for resetting headers
304
+ - add lots of tests and fix a bug
305
+ - should not inherit `data`
306
+ - use simple toString
307
+ - Fixing overwrite Blob/File type as Content-Type in browser. ([#1773](https://github.com/axios/axios/pull/1773))
308
+ - Fixing an issue that type 'null' is not assignable to validateStatus ([#2773](https://github.com/axios/axios/pull/2773))
309
+ - Fixing special char encoding ([#1671](https://github.com/axios/axios/pull/1671))
310
+ - removing @ character from replacement list since it is a reserved character
311
+ - Updating buildURL test to not include the @ character
312
+ - Removing console logs
313
+ - Fixing password encoding with special characters in basic authentication ([#1492](https://github.com/axios/axios/pull/1492))
314
+ - Fixing password encoding with special characters in basic authentication
315
+ - Adding test to check if password with non-Latin1 characters pass
316
+ - Fixing 'Network Error' in react native android ([#1487](https://github.com/axios/axios/pull/1487))
317
+ There is a bug in react native Android platform when using get method. It will trigger a 'Network Error' when passing the requestData which is an empty string to request.send function. So if the requestData is an empty string we can set it to null as well to fix the bug.
318
+ - Fixing Cookie Helper with Async Components ([#1105](https://github.com/axios/axios/pull/1105)) ([#1107](https://github.com/axios/axios/pull/1107))
319
+ - Fixing 'progressEvent' type ([#2851](https://github.com/axios/axios/pull/2851))
320
+ - Fix 'progressEvent' type
321
+ - Update axios.ts
322
+ - Fixing getting local files (file://) failed ([#2470](https://github.com/axios/axios/pull/2470))
323
+ - fix issue #2416, #2396
324
+ - fix Eslint warn
325
+ - Modify judgment conditions
326
+ - add unit test
327
+ - update unit test
328
+ - update unit test
329
+ - Allow PURGE method in typings ([#2191](https://github.com/axios/axios/pull/2191))
330
+ - Adding option to disable automatic decompression ([#2661](https://github.com/axios/axios/pull/2661))
331
+ - Adding ability to disable auto decompression
332
+ - Updating decompress documentation in README
333
+ - Fixing test\unit\adapters\http.js lint errors
334
+ - Adding test for disabling auto decompression
335
+ - Removing changes that fixed lint errors in tests
336
+ - Removing formatting change to unit test
337
+ - Add independent `maxBodyLength` option ([#2781](https://github.com/axios/axios/pull/2781))
338
+ - Add independent option to set the maximum size of the request body
339
+ - Remove maxBodyLength check
340
+ - Update README
341
+ - Assert for error code and message
342
+ - Adding responseEncoding to mergeConfig ([#1745](https://github.com/axios/axios/pull/1745))
343
+ - Compatible with follow-redirect aborts the request ([#2689](https://github.com/axios/axios/pull/2689))
344
+ - Compatible with follow-redirect aborts the request
345
+ - Use the error code
346
+ - Fix merging of params ([#2656](https://github.com/axios/axios/pull/2656))
347
+ - Name function to avoid ESLint func-names warning
348
+ - Switch params config to merge list and update tests
349
+ - Restore testing of both false and null
350
+ - Restore test cases for keys without defaults
351
+ - Include test for non-object values that aren't false-y.
352
+ - Revert `finally` as `then` ([#2683](https://github.com/axios/axios/pull/2683))
353
+
354
+ Internal and Tests:
355
+
356
+ - Fix stale bot config ([#3049](https://github.com/axios/axios/pull/3049))
357
+ - fix stale bot config
358
+ - fix multiple lines
359
+ - Add days and change name to work ([#3035](https://github.com/axios/axios/pull/3035))
360
+ - Update close-issues.yml ([#3031](https://github.com/axios/axios/pull/3031))
361
+ - Update close-issues.yml
362
+ Update close message to read better 😄
363
+ - Fix use of quotations
364
+ Use single quotes as per other .yml files
365
+ - Remove user name form message
366
+ - Add GitHub actions to close stale issues/prs ([#3029](https://github.com/axios/axios/pull/3029))
367
+ - prepare stale actions
368
+ - update messages
369
+ - Add exempt labels and lighten up comments
370
+ - Add GitHub actions to close invalid issues ([#3022](https://github.com/axios/axios/pull/3022))
371
+ - add close actions
372
+ - fix with checkout
373
+ - update issue templates
374
+ - add reminder
375
+ - update close message
376
+ - Add test with Node.js 12 ([#2860](https://github.com/axios/axios/pull/2860))
377
+ - test with Node.js 12
378
+ - test with latest
379
+ - Adding console log on sandbox server startup ([#2210](https://github.com/axios/axios/pull/2210))
380
+ - Adding console log on sandbox server startup
381
+ - Update server.js
382
+ Add server error handling
383
+ - Update server.js
384
+ Better error message, remove retry.
385
+ - Adding tests for method `options` type definitions ([#1996](https://github.com/axios/axios/pull/1996))
386
+ Update tests.
387
+ - Add test for redirecting with too large response ([#2695](https://github.com/axios/axios/pull/2695))
388
+ - Fixing unit test failure in Windows OS ([#2601](https://github.com/axios/axios/pull/2601))
389
+ - Fixing issue for HEAD method and gzipped response ([#2666](https://github.com/axios/axios/pull/2666))
390
+ - Fix tests in browsers ([#2748](https://github.com/axios/axios/pull/2748))
391
+ - chore: add `jsdelivr` and `unpkg` support ([#2443](https://github.com/axios/axios/pull/2443))
392
+
393
+ Documentation:
394
+
395
+ - Adding support for URLSearchParams in node ([#1900](https://github.com/axios/axios/pull/1900))
396
+ - Adding support for URLSearchParams in node
397
+ - Remove un-needed code
398
+ - Update utils.js
399
+ - Make changes as suggested
400
+ - Adding table of content (preview) ([#3050](https://github.com/axios/axios/pull/3050))
401
+ - add toc (preview)
402
+ - remove toc in toc
403
+ Signed-off-by: Moni <usmoni@gmail.com>
404
+ - fix sublinks
405
+ - fix indentation
406
+ - remove redundant table links
407
+ - update caps and indent
408
+ - remove axios
409
+ - Replace 'blacklist' with 'blocklist' ([#3006](https://github.com/axios/axios/pull/3006))
410
+ - docs(): Detailed config options environment. ([#2088](https://github.com/axios/axios/pull/2088))
411
+ - docs(): Detailed config options environment.
412
+ - Update README.md
413
+ - Include axios-data-unpacker in ECOSYSTEM.md ([#2080](https://github.com/axios/axios/pull/2080))
414
+ - Allow opening examples in Gitpod ([#1958](https://github.com/axios/axios/pull/1958))
415
+ - Remove axios.all() and axios.spread() from Readme.md ([#2727](https://github.com/axios/axios/pull/2727))
416
+ - remove axios.all(), axios.spread()
417
+ - replace example
418
+ - axios.all() -> Promise.all()
419
+ - axios.spread(function (acct, perms)) -> function (acct, perms)
420
+ - add deprecated mark
421
+ - Update README.md ([#2887](https://github.com/axios/axios/pull/2887))
422
+ Small change to the data attribute doc of the config. A request body can also be set for DELETE methods but this wasn't mentioned in the documentation (it only mentioned POST, PUT and PATCH). Took my some 10-20 minutes until I realized that I don't need to manipulate the request body with transformRequest in the case of DELETE.
423
+ - Include swagger-taxos-codegen in ECOSYSTEM.md ([#2162](https://github.com/axios/axios/pull/2162))
424
+ - Add CDNJS version badge in README.md ([#878](https://github.com/axios/axios/pull/878))
425
+ This badge will show the version on CDNJS!
426
+ - Documentation update to clear up ambiguity in code examples ([#2928](https://github.com/axios/axios/pull/2928))
427
+ - Made an adjustment to the documentation to clear up any ambiguity around the use of "fs". This should help clear up that the code examples with "fs" cannot be used on the client side.
428
+ - Update README.md about validateStatus ([#2912](https://github.com/axios/axios/pull/2912))
429
+ Rewrote the comment from "Reject only if the status code is greater than or equal to 500" to "Resolve only if the status code is less than 500"
430
+ - Updating documentation for usage form-data ([#2805](https://github.com/axios/axios/pull/2805))
431
+ Closes #2049
432
+ - Fixing CHANGELOG.md issue link ([#2784](https://github.com/axios/axios/pull/2784))
433
+ - Include axios-hooks in ECOSYSTEM.md ([#2003](https://github.com/axios/axios/pull/2003))
434
+ - Added Response header access instructions ([#1901](https://github.com/axios/axios/pull/1901))
435
+ - Added Response header access instructions
436
+ - Added note about using bracket notation
437
+ - Add `onUploadProgress` and `onDownloadProgress` are browser only ([#2763](https://github.com/axios/axios/pull/2763))
438
+ Saw in #928 and #1966 that `onUploadProgress` and `onDownloadProgress` only work in the browser and was missing that from the README.
439
+ - Update ' sign to ` in proxy spec ([#2778](https://github.com/axios/axios/pull/2778))
440
+ - Adding jsDelivr link in README ([#1110](https://github.com/axios/axios/pull/1110))
441
+ - Adding jsDelivr link
442
+ - Add SRI
443
+ - Remove SRI
444
+
445
+ Huge thanks to everyone who contributed to this release via code (authors listed
446
+ below) or via reviews and triaging on GitHub:
447
+
448
+ - Alan Wang <wp_scut@163.com>
449
+ - Alexandru Ungureanu <khakcarot@gmail.com>
450
+ - Anubhav Srivastava <anubhav.srivastava00@gmail.com>
451
+ - Benny Neugebauer <bn@bennyn.de>
452
+ - Cr <631807682@qq.com>
453
+ - David <cygnidavid@gmail.com>
454
+ - David Ko <david.ko@pvtmethod.com>
455
+ - David Tanner <david.tanner@lifeomic.com>
456
+ - Emily Morehouse <emilyemorehouse@gmail.com>
457
+ - Felipe Martins <felipewmartins@gmail.com>
458
+ - Fonger <5862369+Fonger@users.noreply.github.com>
459
+ - Frostack <soulburn007@gmail.com>
460
+ - George Cheng <Gerhut@GMail.com>
461
+ - grumblerchester <grumblerchester@users.noreply.github.com>
462
+ - Gustavo López <gualopezb@gmail.com>
463
+ - hexaez <45806662+hexaez@users.noreply.github.com>
464
+ - huangzuizui <huangzuizui@gmail.com>
465
+ - Ian Wijma <ian@wij.ma>
466
+ - Jay <jasonsaayman@gmail.com>
467
+ - jeffjing <zgayjjf@qq.com>
468
+ - jennynju <46782518+jennynju@users.noreply.github.com>
469
+ - Jimmy Liao <52391190+jimmy-liao-gogoro@users.noreply.github.com>
470
+ - Jonathan Sharpe <j.r.sharpe@gmail.com>
471
+ - JounQin <admin@1stg.me>
472
+ - Justin Beckwith <justin.beckwith@gmail.com>
473
+ - Kamil Posiadała <3dcreator.pl@gmail.com>
474
+ - Lukas Drgon <lukas.drgon@gmail.com>
475
+ - marcinx <mail@marcinx.com>
476
+ - Martti Laine <martti@codeclown.net>
477
+ - Michał Zarach <michal.m.zarach@gmail.com>
478
+ - Moni <usmoni@gmail.com>
479
+ - Motonori Iwata <121048+iwata@users.noreply.github.com>
480
+ - Nikita Galkin <nikita@galk.in>
481
+ - Petr Mares <petr@mares.tw>
482
+ - Philippe Recto <precto1285@gmal.com>
483
+ - Remco Haszing <remcohaszing@gmail.com>
484
+ - rockcs1992 <chengshi1219@gmail.com>
485
+ - Ryan Bown <rbown@niftee.com.au>
486
+ - Samina Fu <sufuf3@gmail.com>
487
+ - Simone Busoli <simone.busoli@gmail.com>
488
+ - Spencer von der Ohe <s.vonderohe40@gmail.com>
489
+ - Sven Efftinge <sven.efftinge@typefox.io>
490
+ - Taegyeoung Oh <otk1090@naver.com>
491
+ - Taemin Shin <cprayer13@gmail.com>
492
+ - Thibault Ehrhart <1208424+ehrhart@users.noreply.github.com>
493
+ - Xianming Zhong <chinesedfan@qq.com>
494
+ - Yasu Flores <carlosyasu91@gmail.com>
495
+ - Zac Delventhal <delventhalz@gmail.com>
496
+
497
+ ### 0.19.2 (Jan 20, 2020)
498
+
499
+ - Remove unnecessary XSS check ([#2679](https://github.com/axios/axios/pull/2679)) (see ([#2646](https://github.com/axios/axios/issues/2646)) for discussion)
500
+
501
+ ### 0.19.1 (Jan 7, 2020)
502
+
503
+ Fixes and Functionality:
504
+
505
+ - Fixing invalid agent issue ([#1904](https://github.com/axios/axios/pull/1904))
506
+ - Fix ignore set withCredentials false ([#2582](https://github.com/axios/axios/pull/2582))
507
+ - Delete useless default to hash ([#2458](https://github.com/axios/axios/pull/2458))
508
+ - Fix HTTP/HTTPs agents passing to follow-redirect ([#1904](https://github.com/axios/axios/pull/1904))
509
+ - Fix ignore set withCredentials false ([#2582](https://github.com/axios/axios/pull/2582))
510
+ - Fix CI build failure ([#2570](https://github.com/axios/axios/pull/2570))
511
+ - Remove dependency on is-buffer from package.json ([#1816](https://github.com/axios/axios/pull/1816))
512
+ - Adding options typings ([#2341](https://github.com/axios/axios/pull/2341))
513
+ - Adding Typescript HTTP method definition for LINK and UNLINK. ([#2444](https://github.com/axios/axios/pull/2444))
514
+ - Update dist with newest changes, fixes Custom Attributes issue
515
+ - Change syntax to see if build passes ([#2488](https://github.com/axios/axios/pull/2488))
516
+ - Update Webpack + deps, remove now unnecessary polyfills ([#2410](https://github.com/axios/axios/pull/2410))
517
+ - Fix to prevent XSS, throw an error when the URL contains a JS script ([#2464](https://github.com/axios/axios/pull/2464))
518
+ - Add custom timeout error copy in config ([#2275](https://github.com/axios/axios/pull/2275))
519
+ - Add error toJSON example ([#2466](https://github.com/axios/axios/pull/2466))
520
+ - Fixing Vulnerability A Fortify Scan finds a critical Cross-Site Scrip… ([#2451](https://github.com/axios/axios/pull/2451))
521
+ - Fixing subdomain handling on no_proxy ([#2442](https://github.com/axios/axios/pull/2442))
522
+ - Make redirection from HTTP to HTTPS work ([#2426](https://github.com/axios/axios/pull/2426)) and ([#2547](https://github.com/axios/axios/pull/2547))
523
+ - Add toJSON property to AxiosError type ([#2427](https://github.com/axios/axios/pull/2427))
524
+ - Fixing socket hang up error on node side for slow response. ([#1752](https://github.com/axios/axios/pull/1752))
525
+ - Alternative syntax to send data into the body ([#2317](https://github.com/axios/axios/pull/2317))
526
+ - Fixing custom config options ([#2207](https://github.com/axios/axios/pull/2207))
527
+ - Fixing set `config.method` after mergeConfig for Axios.prototype.request ([#2383](https://github.com/axios/axios/pull/2383))
528
+ - Axios create url bug ([#2290](https://github.com/axios/axios/pull/2290))
529
+ - Do not modify config.url when using a relative baseURL (resolves [#1628](https://github.com/axios/axios/issues/1098)) ([#2391](https://github.com/axios/axios/pull/2391))
530
+
531
+ Internal:
532
+
533
+ - Revert "Update Webpack + deps, remove now unnecessary polyfills" ([#2479](https://github.com/axios/axios/pull/2479))
534
+ - Order of if/else blocks is causing unit tests mocking XHR. ([#2201](https://github.com/axios/axios/pull/2201))
535
+ - Add license badge ([#2446](https://github.com/axios/axios/pull/2446))
536
+ - Fix travis CI build [#2386](https://github.com/axios/axios/pull/2386)
537
+ - Fix cancellation error on build master. #2290 #2207 ([#2407](https://github.com/axios/axios/pull/2407))
538
+
539
+ Documentation:
540
+
541
+ - Fixing typo in CHANGELOG.md: s/Functionallity/Functionality ([#2639](https://github.com/axios/axios/pull/2639))
542
+ - Fix badge, use master branch ([#2538](https://github.com/axios/axios/pull/2538))
543
+ - Fix typo in changelog [#2193](https://github.com/axios/axios/pull/2193)
544
+ - Document fix ([#2514](https://github.com/axios/axios/pull/2514))
545
+ - Update docs with no_proxy change, issue #2484 ([#2513](https://github.com/axios/axios/pull/2513))
546
+ - Fixing missing words in docs template ([#2259](https://github.com/axios/axios/pull/2259))
547
+ - 🐛Fix request finally documentation in README ([#2189](https://github.com/axios/axios/pull/2189))
548
+ - updating spelling and adding link to docs ([#2212](https://github.com/axios/axios/pull/2212))
549
+ - docs: minor tweak ([#2404](https://github.com/axios/axios/pull/2404))
550
+ - Update response interceptor docs ([#2399](https://github.com/axios/axios/pull/2399))
551
+ - Update README.md ([#2504](https://github.com/axios/axios/pull/2504))
552
+ - Fix word 'sintaxe' to 'syntax' in README.md ([#2432](https://github.com/axios/axios/pull/2432))
553
+ - updating README: notes on CommonJS autocomplete ([#2256](https://github.com/axios/axios/pull/2256))
554
+ - Fix grammar in README.md ([#2271](https://github.com/axios/axios/pull/2271))
555
+ - Doc fixes, minor examples cleanup ([#2198](https://github.com/axios/axios/pull/2198))
556
+
557
+ ### 0.19.0 (May 30, 2019)
558
+
559
+ Fixes and Functionality:
560
+
561
+ - Added support for no_proxy env variable ([#1693](https://github.com/axios/axios/pull/1693/files)) - Chance Dickson
562
+ - Unzip response body only for statuses != 204 ([#1129](https://github.com/axios/axios/pull/1129)) - drawski
563
+ - Destroy stream on exceeding maxContentLength (fixes [#1098](https://github.com/axios/axios/issues/1098)) ([#1485](https://github.com/axios/axios/pull/1485)) - Gadzhi Gadzhiev
564
+ - Makes Axios error generic to use AxiosResponse ([#1738](https://github.com/axios/axios/pull/1738)) - Suman Lama
565
+ - Fixing Mocha tests by locking follow-redirects version to 1.5.10 ([#1993](https://github.com/axios/axios/pull/1993)) - grumblerchester
566
+ - Allow uppercase methods in typings. ([#1781](https://github.com/axios/axios/pull/1781)) - Ken Powers
567
+ - Fixing building url with hash mark ([#1771](https://github.com/axios/axios/pull/1771)) - Anatoly Ryabov
568
+ - This commit fix building url with hash map (fragment identifier) when parameters are present: they must not be added after `#`, because client cut everything after `#`
569
+ - Preserve HTTP method when following redirect ([#1758](https://github.com/axios/axios/pull/1758)) - Rikki Gibson
570
+ - Add `getUri` signature to TypeScript definition. ([#1736](https://github.com/axios/axios/pull/1736)) - Alexander Trauzzi
571
+ - Adding isAxiosError flag to errors thrown by axios ([#1419](https://github.com/axios/axios/pull/1419)) - Ayush Gupta
572
+
573
+ Internal:
574
+
575
+ - Fixing .eslintrc without extension ([#1789](https://github.com/axios/axios/pull/1789)) - Manoel
576
+ - Fix failing SauceLabs tests by updating configuration - Emily Morehouse
577
+ - Add issue templates - Emily Morehouse
578
+
579
+ Documentation:
580
+
581
+ - Consistent coding style in README ([#1787](https://github.com/axios/axios/pull/1787)) - Ali Servet Donmez
582
+ - Add information about auth parameter to README ([#2166](https://github.com/axios/axios/pull/2166)) - xlaguna
583
+ - Add DELETE to list of methods that allow data as a config option ([#2169](https://github.com/axios/axios/pull/2169)) - Daniela Borges Matos de Carvalho
584
+ - Update ECOSYSTEM.md - Add Axios Endpoints ([#2176](https://github.com/axios/axios/pull/2176)) - Renan
585
+ - Add r2curl in ECOSYSTEM ([#2141](https://github.com/axios/axios/pull/2141)) - 유용우 / CX
586
+ - Update README.md - Add instructions for installing with yarn ([#2036](https://github.com/axios/axios/pull/2036)) - Victor Hermes
587
+ - Fixing spacing for README.md ([#2066](https://github.com/axios/axios/pull/2066)) - Josh McCarty
588
+ - Update README.md. - Change `.then` to `.finally` in example code ([#2090](https://github.com/axios/axios/pull/2090)) - Omar Cai
589
+ - Clarify what values responseType can have in Node ([#2121](https://github.com/axios/axios/pull/2121)) - Tyler Breisacher
590
+ - docs(ECOSYSTEM): add axios-api-versioning ([#2020](https://github.com/axios/axios/pull/2020)) - Weffe
591
+ - It seems that `responseType: 'blob'` doesn't actually work in Node (when I tried using it, response.data was a string, not a Blob, since Node doesn't have Blobs), so this clarifies that this option should only be used in the browser
592
+ - Update README.md. - Add Querystring library note ([#1896](https://github.com/axios/axios/pull/1896)) - Dmitriy Eroshenko
593
+ - Add react-hooks-axios to Libraries section of ECOSYSTEM.md ([#1925](https://github.com/axios/axios/pull/1925)) - Cody Chan
594
+ - Clarify in README that default timeout is 0 (no timeout) ([#1750](https://github.com/axios/axios/pull/1750)) - Ben Standefer
595
+
596
+ ### 0.19.0-beta.1 (Aug 9, 2018)
597
+
598
+ **NOTE:** This is a beta version of this release. There may be functionality that is broken in
599
+ certain browsers, though we suspect that builds are hanging and not erroring. See
600
+ https://saucelabs.com/u/axios for the most up-to-date information.
601
+
602
+ New Functionality:
603
+
604
+ - Add getUri method ([#1712](https://github.com/axios/axios/issues/1712))
605
+ - Add support for no_proxy env variable ([#1693](https://github.com/axios/axios/issues/1693))
606
+ - Add toJSON to decorated Axios errors to facilitate serialization ([#1625](https://github.com/axios/axios/issues/1625))
607
+ - Add second then on axios call ([#1623](https://github.com/axios/axios/issues/1623))
608
+ - Typings: allow custom return types
609
+ - Add option to specify character set in responses (with http adapter)
610
+
611
+ Fixes:
612
+
613
+ - Fix Keep defaults local to instance ([#385](https://github.com/axios/axios/issues/385))
614
+ - Correctly catch exception in http test ([#1475](https://github.com/axios/axios/issues/1475))
615
+ - Fix accept header normalization ([#1698](https://github.com/axios/axios/issues/1698))
616
+ - Fix http adapter to allow HTTPS connections via HTTP ([#959](https://github.com/axios/axios/issues/959))
617
+ - Fix Removes usage of deprecated Buffer constructor. ([#1555](https://github.com/axios/axios/issues/1555), [#1622](https://github.com/axios/axios/issues/1622))
618
+ - Fix defaults to use httpAdapter if available ([#1285](https://github.com/axios/axios/issues/1285))
619
+ - Fixing defaults to use httpAdapter if available
620
+ - Use a safer, cross-platform method to detect the Node environment
621
+ - Fix Reject promise if request is cancelled by the browser ([#537](https://github.com/axios/axios/issues/537))
622
+ - [Typescript] Fix missing type parameters on delete/head methods
623
+ - [NS]: Send `false` flag isStandardBrowserEnv for Nativescript
624
+ - Fix missing type parameters on delete/head
625
+ - Fix Default method for an instance always overwritten by get
626
+ - Fix type error when socketPath option in AxiosRequestConfig
627
+ - Capture errors on request data streams
628
+ - Decorate resolve and reject to clear timeout in all cases
629
+
630
+ Huge thanks to everyone who contributed to this release via code (authors listed
631
+ below) or via reviews and triaging on GitHub:
632
+
633
+ - Andrew Scott <ascott18@gmail.com>
634
+ - Anthony Gauthier <antho325@hotmail.com>
635
+ - arpit <arpit2438735@gmail.com>
636
+ - ascott18
637
+ - Benedikt Rötsch <axe312ger@users.noreply.github.com>
638
+ - Chance Dickson <me@chancedickson.com>
639
+ - Dave Stewart <info@davestewart.co.uk>
640
+ - Deric Cain <deric.cain@gmail.com>
641
+ - Guillaume Briday <guillaumebriday@gmail.com>
642
+ - Jacob Wejendorp <jacob@wejendorp.dk>
643
+ - Jim Lynch <mrdotjim@gmail.com>
644
+ - johntron
645
+ - Justin Beckwith <beckwith@google.com>
646
+ - Justin Beckwith <justin.beckwith@gmail.com>
647
+ - Khaled Garbaya <khaledgarbaya@gmail.com>
648
+ - Lim Jing Rong <jjingrong@users.noreply.github.com>
649
+ - Mark van den Broek <mvdnbrk@gmail.com>
650
+ - Martti Laine <martti@codeclown.net>
651
+ - mattridley
652
+ - mattridley <matt.r@joinblink.com>
653
+ - Nicolas Del Valle <nicolas.delvalle@gmail.com>
654
+ - Nilegfx
655
+ - pbarbiero
656
+ - Rikki Gibson <rikkigibson@gmail.com>
657
+ - Sako Hartounian <sakohartounian@yahoo.com>
658
+ - Shane Fitzpatrick <fitzpasd@gmail.com>
659
+ - Stephan Schneider <stephanschndr@gmail.com>
660
+ - Steven <steven@ceriously.com>
661
+ - Tim Garthwaite <tim.garthwaite@jibo.com>
662
+ - Tim Johns <timjohns@yahoo.com>
663
+ - Yutaro Miyazaki <yutaro@studio-rubbish.com>
664
+
665
+ ### 0.18.0 (Feb 19, 2018)
666
+
667
+ - Adding support for UNIX Sockets when running with Node.js ([#1070](https://github.com/axios/axios/pull/1070))
668
+ - Fixing typings ([#1177](https://github.com/axios/axios/pull/1177)):
669
+ - AxiosRequestConfig.proxy: allows type false
670
+ - AxiosProxyConfig: added auth field
671
+ - Adding function signature in AxiosInstance interface so AxiosInstance can be invoked ([#1192](https://github.com/axios/axios/pull/1192), [#1254](https://github.com/axios/axios/pull/1254))
672
+ - Allowing maxContentLength to pass through to redirected calls as maxBodyLength in follow-redirects config ([#1287](https://github.com/axios/axios/pull/1287))
673
+ - Fixing configuration when using an instance - method can now be set ([#1342](https://github.com/axios/axios/pull/1342))
674
+
675
+ ### 0.17.1 (Nov 11, 2017)
676
+
677
+ - Fixing issue with web workers ([#1160](https://github.com/axios/axios/pull/1160))
678
+ - Allowing overriding transport ([#1080](https://github.com/axios/axios/pull/1080))
679
+ - Updating TypeScript typings ([#1165](https://github.com/axios/axios/pull/1165), [#1125](https://github.com/axios/axios/pull/1125), [#1131](https://github.com/axios/axios/pull/1131))
680
+
681
+ ### 0.17.0 (Oct 21, 2017)
682
+
683
+ - **BREAKING** Fixing issue with `baseURL` and interceptors ([#950](https://github.com/axios/axios/pull/950))
684
+ - **BREAKING** Improving handing of duplicate headers ([#874](https://github.com/axios/axios/pull/874))
685
+ - Adding support for disabling proxies ([#691](https://github.com/axios/axios/pull/691))
686
+ - Updating TypeScript typings with generic type parameters ([#1061](https://github.com/axios/axios/pull/1061))
687
+
688
+ ### 0.16.2 (Jun 3, 2017)
689
+
690
+ - Fixing issue with including `buffer` in bundle ([#887](https://github.com/axios/axios/pull/887))
691
+ - Including underlying request in errors ([#830](https://github.com/axios/axios/pull/830))
692
+ - Convert `method` to lowercase ([#930](https://github.com/axios/axios/pull/930))
693
+
694
+ ### 0.16.1 (Apr 8, 2017)
695
+
696
+ - Improving HTTP adapter to return last request in case of redirects ([#828](https://github.com/axios/axios/pull/828))
697
+ - Updating `follow-redirects` dependency ([#829](https://github.com/axios/axios/pull/829))
698
+ - Adding support for passing `Buffer` in node ([#773](https://github.com/axios/axios/pull/773))
699
+
700
+ ### 0.16.0 (Mar 31, 2017)
701
+
702
+ - **BREAKING** Removing `Promise` from axios typings in favor of built-in type declarations ([#480](https://github.com/axios/axios/issues/480))
703
+ - Adding `options` shortcut method ([#461](https://github.com/axios/axios/pull/461))
704
+ - Fixing issue with using `responseType: 'json'` in browsers incompatible with XHR Level 2 ([#654](https://github.com/axios/axios/pull/654))
705
+ - Improving React Native detection ([#731](https://github.com/axios/axios/pull/731))
706
+ - Fixing `combineURLs` to support empty `relativeURL` ([#581](https://github.com/axios/axios/pull/581))
707
+ - Removing `PROTECTION_PREFIX` support ([#561](https://github.com/axios/axios/pull/561))
708
+
709
+ ### 0.15.3 (Nov 27, 2016)
710
+
711
+ - Fixing issue with custom instances and global defaults ([#443](https://github.com/axios/axios/issues/443))
712
+ - Renaming `axios.d.ts` to `index.d.ts` ([#519](https://github.com/axios/axios/issues/519))
713
+ - Adding `get`, `head`, and `delete` to `defaults.headers` ([#509](https://github.com/axios/axios/issues/509))
714
+ - Fixing issue with `btoa` and IE ([#507](https://github.com/axios/axios/issues/507))
715
+ - Adding support for proxy authentication ([#483](https://github.com/axios/axios/pull/483))
716
+ - Improving HTTP adapter to use `http` protocol by default ([#493](https://github.com/axios/axios/pull/493))
717
+ - Fixing proxy issues ([#491](https://github.com/axios/axios/pull/491))
718
+
719
+ ### 0.15.2 (Oct 17, 2016)
720
+
721
+ - Fixing issue with calling `cancel` after response has been received ([#482](https://github.com/axios/axios/issues/482))
722
+
723
+ ### 0.15.1 (Oct 14, 2016)
724
+
725
+ - Fixing issue with UMD ([#485](https://github.com/axios/axios/issues/485))
726
+
727
+ ### 0.15.0 (Oct 10, 2016)
728
+
729
+ - Adding cancellation support ([#452](https://github.com/axios/axios/pull/452))
730
+ - Moving default adapter to global defaults ([#437](https://github.com/axios/axios/pull/437))
731
+ - Fixing issue with `file` URI scheme ([#440](https://github.com/axios/axios/pull/440))
732
+ - Fixing issue with `params` objects that have no prototype ([#445](https://github.com/axios/axios/pull/445))
733
+
734
+ ### 0.14.0 (Aug 27, 2016)
735
+
736
+ - **BREAKING** Updating TypeScript definitions ([#419](https://github.com/axios/axios/pull/419))
737
+ - **BREAKING** Replacing `agent` option with `httpAgent` and `httpsAgent` ([#387](https://github.com/axios/axios/pull/387))
738
+ - **BREAKING** Splitting `progress` event handlers into `onUploadProgress` and `onDownloadProgress` ([#423](https://github.com/axios/axios/pull/423))
739
+ - Adding support for `http_proxy` and `https_proxy` environment variables ([#366](https://github.com/axios/axios/pull/366))
740
+ - Fixing issue with `auth` config option and `Authorization` header ([#397](https://github.com/axios/axios/pull/397))
741
+ - Don't set XSRF header if `xsrfCookieName` is `null` ([#406](https://github.com/axios/axios/pull/406))
742
+
743
+ ### 0.13.1 (Jul 16, 2016)
744
+
745
+ - Fixing issue with response data not being transformed on error ([#378](https://github.com/axios/axios/issues/378))
746
+
747
+ ### 0.13.0 (Jul 13, 2016)
748
+
749
+ - **BREAKING** Improved error handling ([#345](https://github.com/axios/axios/pull/345))
750
+ - **BREAKING** Response transformer now invoked in dispatcher not adapter ([10eb238](https://github.com/axios/axios/commit/10eb23865101f9347570552c04e9d6211376e25e))
751
+ - **BREAKING** Request adapters now return a `Promise` ([157efd5](https://github.com/axios/axios/commit/157efd5615890301824e3121cc6c9d2f9b21f94a))
752
+ - Fixing issue with `withCredentials` not being overwritten ([#343](https://github.com/axios/axios/issues/343))
753
+ - Fixing regression with request transformer being called before request interceptor ([#352](https://github.com/axios/axios/issues/352))
754
+ - Fixing custom instance defaults ([#341](https://github.com/axios/axios/issues/341))
755
+ - Fixing instances created from `axios.create` to have same API as default axios ([#217](https://github.com/axios/axios/issues/217))
756
+
757
+ ### 0.12.0 (May 31, 2016)
758
+
759
+ - Adding support for `URLSearchParams` ([#317](https://github.com/axios/axios/pull/317))
760
+ - Adding `maxRedirects` option ([#307](https://github.com/axios/axios/pull/307))
761
+
762
+ ### 0.11.1 (May 17, 2016)
763
+
764
+ - Fixing IE CORS support ([#313](https://github.com/axios/axios/pull/313))
765
+ - Fixing detection of `FormData` ([#325](https://github.com/axios/axios/pull/325))
766
+ - Adding `Axios` class to exports ([#321](https://github.com/axios/axios/pull/321))
767
+
768
+ ### 0.11.0 (Apr 26, 2016)
769
+
770
+ - Adding support for Stream with HTTP adapter ([#296](https://github.com/axios/axios/pull/296))
771
+ - Adding support for custom HTTP status code error ranges ([#308](https://github.com/axios/axios/pull/308))
772
+ - Fixing issue with ArrayBuffer ([#299](https://github.com/axios/axios/pull/299))
773
+
774
+ ### 0.10.0 (Apr 20, 2016)
775
+
776
+ - Fixing issue with some requests sending `undefined` instead of `null` ([#250](https://github.com/axios/axios/pull/250))
777
+ - Fixing basic auth for HTTP adapter ([#252](https://github.com/axios/axios/pull/252))
778
+ - Fixing request timeout for XHR adapter ([#227](https://github.com/axios/axios/pull/227))
779
+ - Fixing IE8 support by using `onreadystatechange` instead of `onload` ([#249](https://github.com/axios/axios/pull/249))
780
+ - Fixing IE9 cross domain requests ([#251](https://github.com/axios/axios/pull/251))
781
+ - Adding `maxContentLength` option ([#275](https://github.com/axios/axios/pull/275))
782
+ - Fixing XHR support for WebWorker environment ([#279](https://github.com/axios/axios/pull/279))
783
+ - Adding request instance to response ([#200](https://github.com/axios/axios/pull/200))
784
+
785
+ ### 0.9.1 (Jan 24, 2016)
786
+
787
+ - Improving handling of request timeout in node ([#124](https://github.com/axios/axios/issues/124))
788
+ - Fixing network errors not rejecting ([#205](https://github.com/axios/axios/pull/205))
789
+ - Fixing issue with IE rejecting on HTTP 204 ([#201](https://github.com/axios/axios/issues/201))
790
+ - Fixing host/port when following redirects ([#198](https://github.com/axios/axios/pull/198))
791
+
792
+ ### 0.9.0 (Jan 18, 2016)
793
+
794
+ - Adding support for custom adapters
795
+ - Fixing Content-Type header being removed when data is false ([#195](https://github.com/axios/axios/pull/195))
796
+ - Improving XDomainRequest implementation ([#185](https://github.com/axios/axios/pull/185))
797
+ - Improving config merging and order of precedence ([#183](https://github.com/axios/axios/pull/183))
798
+ - Fixing XDomainRequest support for only <= IE9 ([#182](https://github.com/axios/axios/pull/182))
799
+
800
+ ### 0.8.1 (Dec 14, 2015)
801
+
802
+ - Adding support for passing XSRF token for cross domain requests when using `withCredentials` ([#168](https://github.com/axios/axios/pull/168))
803
+ - Fixing error with format of basic auth header ([#178](https://github.com/axios/axios/pull/173))
804
+ - Fixing error with JSON payloads throwing `InvalidStateError` in some cases ([#174](https://github.com/axios/axios/pull/174))
805
+
806
+ ### 0.8.0 (Dec 11, 2015)
807
+
808
+ - Adding support for creating instances of axios ([#123](https://github.com/axios/axios/pull/123))
809
+ - Fixing http adapter to use `Buffer` instead of `String` in case of `responseType === 'arraybuffer'` ([#128](https://github.com/axios/axios/pull/128))
810
+ - Adding support for using custom parameter serializer with `paramsSerializer` option ([#121](https://github.com/axios/axios/pull/121))
811
+ - Fixing issue in IE8 caused by `forEach` on `arguments` ([#127](https://github.com/axios/axios/pull/127))
812
+ - Adding support for following redirects in node ([#146](https://github.com/axios/axios/pull/146))
813
+ - Adding support for transparent decompression if `content-encoding` is set ([#149](https://github.com/axios/axios/pull/149))
814
+ - Adding support for transparent XDomainRequest to handle cross domain requests in IE9 ([#140](https://github.com/axios/axios/pull/140))
815
+ - Adding support for HTTP basic auth via Authorization header ([#167](https://github.com/axios/axios/pull/167))
816
+ - Adding support for baseURL option ([#160](https://github.com/axios/axios/pull/160))
817
+
818
+ ### 0.7.0 (Sep 29, 2015)
819
+
820
+ - Fixing issue with minified bundle in IE8 ([#87](https://github.com/axios/axios/pull/87))
821
+ - Adding support for passing agent in node ([#102](https://github.com/axios/axios/pull/102))
822
+ - Adding support for returning result from `axios.spread` for chaining ([#106](https://github.com/axios/axios/pull/106))
823
+ - Fixing typescript definition ([#105](https://github.com/axios/axios/pull/105))
824
+ - Fixing default timeout config for node ([#112](https://github.com/axios/axios/pull/112))
825
+ - Adding support for use in web workers, and react-native ([#70](https://github.com/axios/axios/issue/70)), ([#98](https://github.com/axios/axios/pull/98))
826
+ - Adding support for fetch like API `axios(url[, config])` ([#116](https://github.com/axios/axios/issues/116))
827
+
828
+ ### 0.6.0 (Sep 21, 2015)
829
+
830
+ - Removing deprecated success/error aliases
831
+ - Fixing issue with array params not being properly encoded ([#49](https://github.com/axios/axios/pull/49))
832
+ - Fixing issue with User-Agent getting overridden ([#69](https://github.com/axios/axios/issues/69))
833
+ - Adding support for timeout config ([#56](https://github.com/axios/axios/issues/56))
834
+ - Removing es6-promise dependency
835
+ - Fixing issue preventing `length` to be used as a parameter ([#91](https://github.com/axios/axios/pull/91))
836
+ - Fixing issue with IE8 ([#85](https://github.com/axios/axios/pull/85))
837
+ - Converting build to UMD
838
+
839
+ ### 0.5.4 (Apr 08, 2015)
840
+
841
+ - Fixing issue with FormData not being sent ([#53](https://github.com/axios/axios/issues/53))
842
+
843
+ ### 0.5.3 (Apr 07, 2015)
844
+
845
+ - Using JSON.parse unconditionally when transforming response string ([#55](https://github.com/axios/axios/issues/55))
846
+
847
+ ### 0.5.2 (Mar 13, 2015)
848
+
849
+ - Adding support for `statusText` in response ([#46](https://github.com/axios/axios/issues/46))
850
+
851
+ ### 0.5.1 (Mar 10, 2015)
852
+
853
+ - Fixing issue using strict mode ([#45](https://github.com/axios/axios/issues/45))
854
+ - Fixing issue with standalone build ([#47](https://github.com/axios/axios/issues/47))
855
+
856
+ ### 0.5.0 (Jan 23, 2015)
857
+
858
+ - Adding support for intercepetors ([#14](https://github.com/axios/axios/issues/14))
859
+ - Updating es6-promise dependency
860
+
861
+ ### 0.4.2 (Dec 10, 2014)
862
+
863
+ - Fixing issue with `Content-Type` when using `FormData` ([#22](https://github.com/axios/axios/issues/22))
864
+ - Adding support for TypeScript ([#25](https://github.com/axios/axios/issues/25))
865
+ - Fixing issue with standalone build ([#29](https://github.com/axios/axios/issues/29))
866
+ - Fixing issue with verbs needing to be capitalized in some browsers ([#30](https://github.com/axios/axios/issues/30))
867
+
868
+ ### 0.4.1 (Oct 15, 2014)
869
+
870
+ - Adding error handling to request for node.js ([#18](https://github.com/axios/axios/issues/18))
871
+
872
+ ### 0.4.0 (Oct 03, 2014)
873
+
874
+ - Adding support for `ArrayBuffer` and `ArrayBufferView` ([#10](https://github.com/axios/axios/issues/10))
875
+ - Adding support for utf-8 for node.js ([#13](https://github.com/axios/axios/issues/13))
876
+ - Adding support for SSL for node.js ([#12](https://github.com/axios/axios/issues/12))
877
+ - Fixing incorrect `Content-Type` header ([#9](https://github.com/axios/axios/issues/9))
878
+ - Adding standalone build without bundled es6-promise ([#11](https://github.com/axios/axios/issues/11))
879
+ - Deprecating `success`/`error` in favor of `then`/`catch`
880
+
881
+ ### 0.3.1 (Sep 16, 2014)
882
+
883
+ - Fixing missing post body when using node.js ([#3](https://github.com/axios/axios/issues/3))
884
+
885
+ ### 0.3.0 (Sep 16, 2014)
886
+
887
+ - Fixing `success` and `error` to properly receive response data as individual arguments ([#8](https://github.com/axios/axios/issues/8))
888
+ - Updating `then` and `catch` to receive response data as a single object ([#6](https://github.com/axios/axios/issues/6))
889
+ - Fixing issue with `all` not working ([#7](https://github.com/axios/axios/issues/7))
890
+
891
+ ### 0.2.2 (Sep 14, 2014)
892
+
893
+ - Fixing bundling with browserify ([#4](https://github.com/axios/axios/issues/4))
894
+
895
+ ### 0.2.1 (Sep 12, 2014)
896
+
897
+ - Fixing build problem causing ridiculous file sizes
898
+
899
+ ### 0.2.0 (Sep 12, 2014)
900
+
901
+ - Adding support for `all` and `spread`
902
+ - Adding support for node.js ([#1](https://github.com/axios/axios/issues/1))
903
+
904
+ ### 0.1.0 (Aug 29, 2014)
905
+
906
+ - Initial release
node_modules/axios/LICENSE ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Copyright (c) 2014-present Matt Zabriskie
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ of this software and associated documentation files (the "Software"), to deal
5
+ in the Software without restriction, including without limitation the rights
6
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ copies of the Software, and to permit persons to whom the Software is
8
+ furnished to do so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in
11
+ all copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+ THE SOFTWARE.
node_modules/axios/README.md ADDED
@@ -0,0 +1,909 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # axios
2
+
3
+ [![npm version](https://img.shields.io/npm/v/axios.svg?style=flat-square)](https://www.npmjs.org/package/axios)
4
+ [![CDNJS](https://img.shields.io/cdnjs/v/axios.svg?style=flat-square)](https://cdnjs.com/libraries/axios)
5
+ ![Build status](https://github.com/axios/axios/actions/workflows/ci.yml/badge.svg)
6
+ [![Gitpod Ready-to-Code](https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod)](https://gitpod.io/#https://github.com/axios/axios)
7
+ [![code coverage](https://img.shields.io/coveralls/mzabriskie/axios.svg?style=flat-square)](https://coveralls.io/r/mzabriskie/axios)
8
+ [![install size](https://packagephobia.now.sh/badge?p=axios)](https://packagephobia.now.sh/result?p=axios)
9
+ [![npm downloads](https://img.shields.io/npm/dm/axios.svg?style=flat-square)](http://npm-stat.com/charts.html?package=axios)
10
+ [![gitter chat](https://img.shields.io/gitter/room/mzabriskie/axios.svg?style=flat-square)](https://gitter.im/mzabriskie/axios)
11
+ [![code helpers](https://www.codetriage.com/axios/axios/badges/users.svg)](https://www.codetriage.com/axios/axios)
12
+ [![Known Vulnerabilities](https://snyk.io/test/npm/axios/badge.svg)](https://snyk.io/test/npm/axios)
13
+
14
+ Promise based HTTP client for the browser and node.js
15
+
16
+ > New axios docs website: [click here](https://axios-http.com/)
17
+
18
+ ## Table of Contents
19
+
20
+ - [Features](#features)
21
+ - [Browser Support](#browser-support)
22
+ - [Installing](#installing)
23
+ - [Example](#example)
24
+ - [Axios API](#axios-api)
25
+ - [Request method aliases](#request-method-aliases)
26
+ - [Concurrency (Deprecated)](#concurrency-deprecated)
27
+ - [Creating an instance](#creating-an-instance)
28
+ - [Instance methods](#instance-methods)
29
+ - [Request Config](#request-config)
30
+ - [Response Schema](#response-schema)
31
+ - [Config Defaults](#config-defaults)
32
+ - [Global axios defaults](#global-axios-defaults)
33
+ - [Custom instance defaults](#custom-instance-defaults)
34
+ - [Config order of precedence](#config-order-of-precedence)
35
+ - [Interceptors](#interceptors)
36
+ - [Multiple Interceptors](#multiple-interceptors)
37
+ - [Handling Errors](#handling-errors)
38
+ - [Cancellation](#cancellation)
39
+ - [Using application/x-www-form-urlencoded format](#using-applicationx-www-form-urlencoded-format)
40
+ - [Browser](#browser)
41
+ - [Node.js](#nodejs)
42
+ - [Query string](#query-string)
43
+ - [Form data](#form-data)
44
+ - [Semver](#semver)
45
+ - [Promises](#promises)
46
+ - [TypeScript](#typescript)
47
+ - [Resources](#resources)
48
+ - [Credits](#credits)
49
+ - [License](#license)
50
+
51
+ ## Features
52
+
53
+ - Make [XMLHttpRequests](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest) from the browser
54
+ - Make [http](http://nodejs.org/api/http.html) requests from node.js
55
+ - Supports the [Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise) API
56
+ - Intercept request and response
57
+ - Transform request and response data
58
+ - Cancel requests
59
+ - Automatic transforms for JSON data
60
+ - Client side support for protecting against [XSRF](http://en.wikipedia.org/wiki/Cross-site_request_forgery)
61
+
62
+ ## Browser Support
63
+
64
+ ![Chrome](https://raw.github.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png) | ![Firefox](https://raw.github.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png) | ![Safari](https://raw.github.com/alrra/browser-logos/master/src/safari/safari_48x48.png) | ![Opera](https://raw.github.com/alrra/browser-logos/master/src/opera/opera_48x48.png) | ![Edge](https://raw.github.com/alrra/browser-logos/master/src/edge/edge_48x48.png) | ![IE](https://raw.github.com/alrra/browser-logos/master/src/archive/internet-explorer_9-11/internet-explorer_9-11_48x48.png) |
65
+ --- | --- | --- | --- | --- | --- |
66
+ Latest ✔ | Latest ✔ | Latest ✔ | Latest ✔ | Latest ✔ | 11 ✔ |
67
+
68
+ [![Browser Matrix](https://saucelabs.com/open_sauce/build_matrix/axios.svg)](https://saucelabs.com/u/axios)
69
+
70
+ ## Installing
71
+
72
+ Using npm:
73
+
74
+ ```bash
75
+ $ npm install axios
76
+ ```
77
+
78
+ Using bower:
79
+
80
+ ```bash
81
+ $ bower install axios
82
+ ```
83
+
84
+ Using yarn:
85
+
86
+ ```bash
87
+ $ yarn add axios
88
+ ```
89
+
90
+ Using jsDelivr CDN:
91
+
92
+ ```html
93
+ <script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
94
+ ```
95
+
96
+ Using unpkg CDN:
97
+
98
+ ```html
99
+ <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
100
+ ```
101
+
102
+ ## Example
103
+
104
+ ### note: CommonJS usage
105
+ In order to gain the TypeScript typings (for intellisense / autocomplete) while using CommonJS imports with `require()` use the following approach:
106
+
107
+ ```js
108
+ const axios = require('axios').default;
109
+
110
+ // axios.<method> will now provide autocomplete and parameter typings
111
+ ```
112
+
113
+ Performing a `GET` request
114
+
115
+ ```js
116
+ const axios = require('axios');
117
+
118
+ // Make a request for a user with a given ID
119
+ axios.get('/user?ID=12345')
120
+ .then(function (response) {
121
+ // handle success
122
+ console.log(response);
123
+ })
124
+ .catch(function (error) {
125
+ // handle error
126
+ console.log(error);
127
+ })
128
+ .then(function () {
129
+ // always executed
130
+ });
131
+
132
+ // Optionally the request above could also be done as
133
+ axios.get('/user', {
134
+ params: {
135
+ ID: 12345
136
+ }
137
+ })
138
+ .then(function (response) {
139
+ console.log(response);
140
+ })
141
+ .catch(function (error) {
142
+ console.log(error);
143
+ })
144
+ .then(function () {
145
+ // always executed
146
+ });
147
+
148
+ // Want to use async/await? Add the `async` keyword to your outer function/method.
149
+ async function getUser() {
150
+ try {
151
+ const response = await axios.get('/user?ID=12345');
152
+ console.log(response);
153
+ } catch (error) {
154
+ console.error(error);
155
+ }
156
+ }
157
+ ```
158
+
159
+ > **NOTE:** `async/await` is part of ECMAScript 2017 and is not supported in Internet
160
+ > Explorer and older browsers, so use with caution.
161
+
162
+ Performing a `POST` request
163
+
164
+ ```js
165
+ axios.post('/user', {
166
+ firstName: 'Fred',
167
+ lastName: 'Flintstone'
168
+ })
169
+ .then(function (response) {
170
+ console.log(response);
171
+ })
172
+ .catch(function (error) {
173
+ console.log(error);
174
+ });
175
+ ```
176
+
177
+ Performing multiple concurrent requests
178
+
179
+ ```js
180
+ function getUserAccount() {
181
+ return axios.get('/user/12345');
182
+ }
183
+
184
+ function getUserPermissions() {
185
+ return axios.get('/user/12345/permissions');
186
+ }
187
+
188
+ Promise.all([getUserAccount(), getUserPermissions()])
189
+ .then(function (results) {
190
+ const acct = results[0];
191
+ const perm = results[1];
192
+ });
193
+ ```
194
+
195
+ ## axios API
196
+
197
+ Requests can be made by passing the relevant config to `axios`.
198
+
199
+ ##### axios(config)
200
+
201
+ ```js
202
+ // Send a POST request
203
+ axios({
204
+ method: 'post',
205
+ url: '/user/12345',
206
+ data: {
207
+ firstName: 'Fred',
208
+ lastName: 'Flintstone'
209
+ }
210
+ });
211
+ ```
212
+
213
+ ```js
214
+ // GET request for remote image in node.js
215
+ axios({
216
+ method: 'get',
217
+ url: 'http://bit.ly/2mTM3nY',
218
+ responseType: 'stream'
219
+ })
220
+ .then(function (response) {
221
+ response.data.pipe(fs.createWriteStream('ada_lovelace.jpg'))
222
+ });
223
+ ```
224
+
225
+ ##### axios(url[, config])
226
+
227
+ ```js
228
+ // Send a GET request (default method)
229
+ axios('/user/12345');
230
+ ```
231
+
232
+ ### Request method aliases
233
+
234
+ For convenience aliases have been provided for all supported request methods.
235
+
236
+ ##### axios.request(config)
237
+ ##### axios.get(url[, config])
238
+ ##### axios.delete(url[, config])
239
+ ##### axios.head(url[, config])
240
+ ##### axios.options(url[, config])
241
+ ##### axios.post(url[, data[, config]])
242
+ ##### axios.put(url[, data[, config]])
243
+ ##### axios.patch(url[, data[, config]])
244
+
245
+ ###### NOTE
246
+ When using the alias methods `url`, `method`, and `data` properties don't need to be specified in config.
247
+
248
+ ### Concurrency (Deprecated)
249
+ Please use `Promise.all` to replace the below functions.
250
+
251
+ Helper functions for dealing with concurrent requests.
252
+
253
+ axios.all(iterable)
254
+ axios.spread(callback)
255
+
256
+ ### Creating an instance
257
+
258
+ You can create a new instance of axios with a custom config.
259
+
260
+ ##### axios.create([config])
261
+
262
+ ```js
263
+ const instance = axios.create({
264
+ baseURL: 'https://some-domain.com/api/',
265
+ timeout: 1000,
266
+ headers: {'X-Custom-Header': 'foobar'}
267
+ });
268
+ ```
269
+
270
+ ### Instance methods
271
+
272
+ The available instance methods are listed below. The specified config will be merged with the instance config.
273
+
274
+ ##### axios#request(config)
275
+ ##### axios#get(url[, config])
276
+ ##### axios#delete(url[, config])
277
+ ##### axios#head(url[, config])
278
+ ##### axios#options(url[, config])
279
+ ##### axios#post(url[, data[, config]])
280
+ ##### axios#put(url[, data[, config]])
281
+ ##### axios#patch(url[, data[, config]])
282
+ ##### axios#getUri([config])
283
+
284
+ ## Request Config
285
+
286
+ These are the available config options for making requests. Only the `url` is required. Requests will default to `GET` if `method` is not specified.
287
+
288
+ ```js
289
+ {
290
+ // `url` is the server URL that will be used for the request
291
+ url: '/user',
292
+
293
+ // `method` is the request method to be used when making the request
294
+ method: 'get', // default
295
+
296
+ // `baseURL` will be prepended to `url` unless `url` is absolute.
297
+ // It can be convenient to set `baseURL` for an instance of axios to pass relative URLs
298
+ // to methods of that instance.
299
+ baseURL: 'https://some-domain.com/api/',
300
+
301
+ // `transformRequest` allows changes to the request data before it is sent to the server
302
+ // This is only applicable for request methods 'PUT', 'POST', 'PATCH' and 'DELETE'
303
+ // The last function in the array must return a string or an instance of Buffer, ArrayBuffer,
304
+ // FormData or Stream
305
+ // You may modify the headers object.
306
+ transformRequest: [function (data, headers) {
307
+ // Do whatever you want to transform the data
308
+
309
+ return data;
310
+ }],
311
+
312
+ // `transformResponse` allows changes to the response data to be made before
313
+ // it is passed to then/catch
314
+ transformResponse: [function (data) {
315
+ // Do whatever you want to transform the data
316
+
317
+ return data;
318
+ }],
319
+
320
+ // `headers` are custom headers to be sent
321
+ headers: {'X-Requested-With': 'XMLHttpRequest'},
322
+
323
+ // `params` are the URL parameters to be sent with the request
324
+ // Must be a plain object or a URLSearchParams object
325
+ params: {
326
+ ID: 12345
327
+ },
328
+
329
+ // `paramsSerializer` is an optional function in charge of serializing `params`
330
+ // (e.g. https://www.npmjs.com/package/qs, http://api.jquery.com/jquery.param/)
331
+ paramsSerializer: function (params) {
332
+ return Qs.stringify(params, {arrayFormat: 'brackets'})
333
+ },
334
+
335
+ // `data` is the data to be sent as the request body
336
+ // Only applicable for request methods 'PUT', 'POST', 'DELETE , and 'PATCH'
337
+ // When no `transformRequest` is set, must be of one of the following types:
338
+ // - string, plain object, ArrayBuffer, ArrayBufferView, URLSearchParams
339
+ // - Browser only: FormData, File, Blob
340
+ // - Node only: Stream, Buffer
341
+ data: {
342
+ firstName: 'Fred'
343
+ },
344
+
345
+ // syntax alternative to send data into the body
346
+ // method post
347
+ // only the value is sent, not the key
348
+ data: 'Country=Brasil&City=Belo Horizonte',
349
+
350
+ // `timeout` specifies the number of milliseconds before the request times out.
351
+ // If the request takes longer than `timeout`, the request will be aborted.
352
+ timeout: 1000, // default is `0` (no timeout)
353
+
354
+ // `withCredentials` indicates whether or not cross-site Access-Control requests
355
+ // should be made using credentials
356
+ withCredentials: false, // default
357
+
358
+ // `adapter` allows custom handling of requests which makes testing easier.
359
+ // Return a promise and supply a valid response (see lib/adapters/README.md).
360
+ adapter: function (config) {
361
+ /* ... */
362
+ },
363
+
364
+ // `auth` indicates that HTTP Basic auth should be used, and supplies credentials.
365
+ // This will set an `Authorization` header, overwriting any existing
366
+ // `Authorization` custom headers you have set using `headers`.
367
+ // Please note that only HTTP Basic auth is configurable through this parameter.
368
+ // For Bearer tokens and such, use `Authorization` custom headers instead.
369
+ auth: {
370
+ username: 'janedoe',
371
+ password: 's00pers3cret'
372
+ },
373
+
374
+ // `responseType` indicates the type of data that the server will respond with
375
+ // options are: 'arraybuffer', 'document', 'json', 'text', 'stream'
376
+ // browser only: 'blob'
377
+ responseType: 'json', // default
378
+
379
+ // `responseEncoding` indicates encoding to use for decoding responses (Node.js only)
380
+ // Note: Ignored for `responseType` of 'stream' or client-side requests
381
+ responseEncoding: 'utf8', // default
382
+
383
+ // `xsrfCookieName` is the name of the cookie to use as a value for xsrf token
384
+ xsrfCookieName: 'XSRF-TOKEN', // default
385
+
386
+ // `xsrfHeaderName` is the name of the http header that carries the xsrf token value
387
+ xsrfHeaderName: 'X-XSRF-TOKEN', // default
388
+
389
+ // `onUploadProgress` allows handling of progress events for uploads
390
+ // browser only
391
+ onUploadProgress: function (progressEvent) {
392
+ // Do whatever you want with the native progress event
393
+ },
394
+
395
+ // `onDownloadProgress` allows handling of progress events for downloads
396
+ // browser only
397
+ onDownloadProgress: function (progressEvent) {
398
+ // Do whatever you want with the native progress event
399
+ },
400
+
401
+ // `maxContentLength` defines the max size of the http response content in bytes allowed in node.js
402
+ maxContentLength: 2000,
403
+
404
+ // `maxBodyLength` (Node only option) defines the max size of the http request content in bytes allowed
405
+ maxBodyLength: 2000,
406
+
407
+ // `validateStatus` defines whether to resolve or reject the promise for a given
408
+ // HTTP response status code. If `validateStatus` returns `true` (or is set to `null`
409
+ // or `undefined`), the promise will be resolved; otherwise, the promise will be
410
+ // rejected.
411
+ validateStatus: function (status) {
412
+ return status >= 200 && status < 300; // default
413
+ },
414
+
415
+ // `maxRedirects` defines the maximum number of redirects to follow in node.js.
416
+ // If set to 0, no redirects will be followed.
417
+ maxRedirects: 5, // default
418
+
419
+ // `socketPath` defines a UNIX Socket to be used in node.js.
420
+ // e.g. '/var/run/docker.sock' to send requests to the docker daemon.
421
+ // Only either `socketPath` or `proxy` can be specified.
422
+ // If both are specified, `socketPath` is used.
423
+ socketPath: null, // default
424
+
425
+ // `httpAgent` and `httpsAgent` define a custom agent to be used when performing http
426
+ // and https requests, respectively, in node.js. This allows options to be added like
427
+ // `keepAlive` that are not enabled by default.
428
+ httpAgent: new http.Agent({ keepAlive: true }),
429
+ httpsAgent: new https.Agent({ keepAlive: true }),
430
+
431
+ // `proxy` defines the hostname, port, and protocol of the proxy server.
432
+ // You can also define your proxy using the conventional `http_proxy` and
433
+ // `https_proxy` environment variables. If you are using environment variables
434
+ // for your proxy configuration, you can also define a `no_proxy` environment
435
+ // variable as a comma-separated list of domains that should not be proxied.
436
+ // Use `false` to disable proxies, ignoring environment variables.
437
+ // `auth` indicates that HTTP Basic auth should be used to connect to the proxy, and
438
+ // supplies credentials.
439
+ // This will set an `Proxy-Authorization` header, overwriting any existing
440
+ // `Proxy-Authorization` custom headers you have set using `headers`.
441
+ // If the proxy server uses HTTPS, then you must set the protocol to `https`.
442
+ proxy: {
443
+ protocol: 'https',
444
+ host: '127.0.0.1',
445
+ port: 9000,
446
+ auth: {
447
+ username: 'mikeymike',
448
+ password: 'rapunz3l'
449
+ }
450
+ },
451
+
452
+ // `cancelToken` specifies a cancel token that can be used to cancel the request
453
+ // (see Cancellation section below for details)
454
+ cancelToken: new CancelToken(function (cancel) {
455
+ }),
456
+
457
+ // an alternative way to cancel Axios requests using AbortController
458
+ signal: new AbortController().signal,
459
+
460
+ // `decompress` indicates whether or not the response body should be decompressed
461
+ // automatically. If set to `true` will also remove the 'content-encoding' header
462
+ // from the responses objects of all decompressed responses
463
+ // - Node only (XHR cannot turn off decompression)
464
+ decompress: true // default
465
+
466
+ // `insecureHTTPParser` boolean.
467
+ // Indicates where to use an insecure HTTP parser that accepts invalid HTTP headers.
468
+ // This may allow interoperability with non-conformant HTTP implementations.
469
+ // Using the insecure parser should be avoided.
470
+ // see options https://nodejs.org/dist/latest-v12.x/docs/api/http.html#http_http_request_url_options_callback
471
+ // see also https://nodejs.org/en/blog/vulnerability/february-2020-security-releases/#strict-http-header-parsing-none
472
+ insecureHTTPParser: undefined // default
473
+
474
+ // transitional options for backward compatibility that may be removed in the newer versions
475
+ transitional: {
476
+ // silent JSON parsing mode
477
+ // `true` - ignore JSON parsing errors and set response.data to null if parsing failed (old behaviour)
478
+ // `false` - throw SyntaxError if JSON parsing failed (Note: responseType must be set to 'json')
479
+ silentJSONParsing: true, // default value for the current Axios version
480
+
481
+ // try to parse the response string as JSON even if `responseType` is not 'json'
482
+ forcedJSONParsing: true,
483
+
484
+ // throw ETIMEDOUT error instead of generic ECONNABORTED on request timeouts
485
+ clarifyTimeoutError: false,
486
+ }
487
+ }
488
+ ```
489
+
490
+ ## Response Schema
491
+
492
+ The response for a request contains the following information.
493
+
494
+ ```js
495
+ {
496
+ // `data` is the response that was provided by the server
497
+ data: {},
498
+
499
+ // `status` is the HTTP status code from the server response
500
+ status: 200,
501
+
502
+ // `statusText` is the HTTP status message from the server response
503
+ statusText: 'OK',
504
+
505
+ // `headers` the HTTP headers that the server responded with
506
+ // All header names are lower cased and can be accessed using the bracket notation.
507
+ // Example: `response.headers['content-type']`
508
+ headers: {},
509
+
510
+ // `config` is the config that was provided to `axios` for the request
511
+ config: {},
512
+
513
+ // `request` is the request that generated this response
514
+ // It is the last ClientRequest instance in node.js (in redirects)
515
+ // and an XMLHttpRequest instance in the browser
516
+ request: {}
517
+ }
518
+ ```
519
+
520
+ When using `then`, you will receive the response as follows:
521
+
522
+ ```js
523
+ axios.get('/user/12345')
524
+ .then(function (response) {
525
+ console.log(response.data);
526
+ console.log(response.status);
527
+ console.log(response.statusText);
528
+ console.log(response.headers);
529
+ console.log(response.config);
530
+ });
531
+ ```
532
+
533
+ When using `catch`, or passing a [rejection callback](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/then) as second parameter of `then`, the response will be available through the `error` object as explained in the [Handling Errors](#handling-errors) section.
534
+
535
+ ## Config Defaults
536
+
537
+ You can specify config defaults that will be applied to every request.
538
+
539
+ ### Global axios defaults
540
+
541
+ ```js
542
+ axios.defaults.baseURL = 'https://api.example.com';
543
+
544
+ // Important: If axios is used with multiple domains, the AUTH_TOKEN will be sent to all of them.
545
+ // See below for an example using Custom instance defaults instead.
546
+ axios.defaults.headers.common['Authorization'] = AUTH_TOKEN;
547
+
548
+ axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
549
+ ```
550
+
551
+ ### Custom instance defaults
552
+
553
+ ```js
554
+ // Set config defaults when creating the instance
555
+ const instance = axios.create({
556
+ baseURL: 'https://api.example.com'
557
+ });
558
+
559
+ // Alter defaults after instance has been created
560
+ instance.defaults.headers.common['Authorization'] = AUTH_TOKEN;
561
+ ```
562
+
563
+ ### Config order of precedence
564
+
565
+ Config will be merged with an order of precedence. The order is library defaults found in [lib/defaults.js](https://github.com/axios/axios/blob/master/lib/defaults.js#L28), then `defaults` property of the instance, and finally `config` argument for the request. The latter will take precedence over the former. Here's an example.
566
+
567
+ ```js
568
+ // Create an instance using the config defaults provided by the library
569
+ // At this point the timeout config value is `0` as is the default for the library
570
+ const instance = axios.create();
571
+
572
+ // Override timeout default for the library
573
+ // Now all requests using this instance will wait 2.5 seconds before timing out
574
+ instance.defaults.timeout = 2500;
575
+
576
+ // Override timeout for this request as it's known to take a long time
577
+ instance.get('/longRequest', {
578
+ timeout: 5000
579
+ });
580
+ ```
581
+
582
+ ## Interceptors
583
+
584
+ You can intercept requests or responses before they are handled by `then` or `catch`.
585
+
586
+ ```js
587
+ // Add a request interceptor
588
+ axios.interceptors.request.use(function (config) {
589
+ // Do something before request is sent
590
+ return config;
591
+ }, function (error) {
592
+ // Do something with request error
593
+ return Promise.reject(error);
594
+ });
595
+
596
+ // Add a response interceptor
597
+ axios.interceptors.response.use(function (response) {
598
+ // Any status code that lie within the range of 2xx cause this function to trigger
599
+ // Do something with response data
600
+ return response;
601
+ }, function (error) {
602
+ // Any status codes that falls outside the range of 2xx cause this function to trigger
603
+ // Do something with response error
604
+ return Promise.reject(error);
605
+ });
606
+ ```
607
+
608
+ If you need to remove an interceptor later you can.
609
+
610
+ ```js
611
+ const myInterceptor = axios.interceptors.request.use(function () {/*...*/});
612
+ axios.interceptors.request.eject(myInterceptor);
613
+ ```
614
+
615
+ You can add interceptors to a custom instance of axios.
616
+
617
+ ```js
618
+ const instance = axios.create();
619
+ instance.interceptors.request.use(function () {/*...*/});
620
+ ```
621
+
622
+ When you add request interceptors, they are presumed to be asynchronous by default. This can cause a delay
623
+ in the execution of your axios request when the main thread is blocked (a promise is created under the hood for
624
+ the interceptor and your request gets put on the bottom of the call stack). If your request interceptors are synchronous you can add a flag
625
+ to the options object that will tell axios to run the code synchronously and avoid any delays in request execution.
626
+
627
+ ```js
628
+ axios.interceptors.request.use(function (config) {
629
+ config.headers.test = 'I am only a header!';
630
+ return config;
631
+ }, null, { synchronous: true });
632
+ ```
633
+
634
+ If you want to execute a particular interceptor based on a runtime check,
635
+ you can add a `runWhen` function to the options object. The interceptor will not be executed **if and only if** the return
636
+ of `runWhen` is `false`. The function will be called with the config
637
+ object (don't forget that you can bind your own arguments to it as well.) This can be handy when you have an
638
+ asynchronous request interceptor that only needs to run at certain times.
639
+
640
+ ```js
641
+ function onGetCall(config) {
642
+ return config.method === 'get';
643
+ }
644
+ axios.interceptors.request.use(function (config) {
645
+ config.headers.test = 'special get headers';
646
+ return config;
647
+ }, null, { runWhen: onGetCall });
648
+ ```
649
+
650
+ ### Multiple Interceptors
651
+
652
+ Given you add multiple response interceptors
653
+ and when the response was fulfilled
654
+ - then each interceptor is executed
655
+ - then they are executed in the order they were added
656
+ - then only the last interceptor's result is returned
657
+ - then every interceptor receives the result of it's predecessor
658
+ - and when the fulfillment-interceptor throws
659
+ - then the following fulfillment-interceptor is not called
660
+ - then the following rejection-interceptor is called
661
+ - once caught, another following fulfill-interceptor is called again (just like in a promise chain).
662
+
663
+ Read [the interceptor tests](./test/specs/interceptors.spec.js) for seeing all this in code.
664
+
665
+ ## Handling Errors
666
+
667
+ ```js
668
+ axios.get('/user/12345')
669
+ .catch(function (error) {
670
+ if (error.response) {
671
+ // The request was made and the server responded with a status code
672
+ // that falls out of the range of 2xx
673
+ console.log(error.response.data);
674
+ console.log(error.response.status);
675
+ console.log(error.response.headers);
676
+ } else if (error.request) {
677
+ // The request was made but no response was received
678
+ // `error.request` is an instance of XMLHttpRequest in the browser and an instance of
679
+ // http.ClientRequest in node.js
680
+ console.log(error.request);
681
+ } else {
682
+ // Something happened in setting up the request that triggered an Error
683
+ console.log('Error', error.message);
684
+ }
685
+ console.log(error.config);
686
+ });
687
+ ```
688
+
689
+ Using the `validateStatus` config option, you can define HTTP code(s) that should throw an error.
690
+
691
+ ```js
692
+ axios.get('/user/12345', {
693
+ validateStatus: function (status) {
694
+ return status < 500; // Resolve only if the status code is less than 500
695
+ }
696
+ })
697
+ ```
698
+
699
+ Using `toJSON` you get an object with more information about the HTTP error.
700
+
701
+ ```js
702
+ axios.get('/user/12345')
703
+ .catch(function (error) {
704
+ console.log(error.toJSON());
705
+ });
706
+ ```
707
+
708
+ ## Cancellation
709
+
710
+ You can cancel a request using a *cancel token*.
711
+
712
+ > The axios cancel token API is based on the withdrawn [cancelable promises proposal](https://github.com/tc39/proposal-cancelable-promises).
713
+
714
+ You can create a cancel token using the `CancelToken.source` factory as shown below:
715
+
716
+ ```js
717
+ const CancelToken = axios.CancelToken;
718
+ const source = CancelToken.source();
719
+
720
+ axios.get('/user/12345', {
721
+ cancelToken: source.token
722
+ }).catch(function (thrown) {
723
+ if (axios.isCancel(thrown)) {
724
+ console.log('Request canceled', thrown.message);
725
+ } else {
726
+ // handle error
727
+ }
728
+ });
729
+
730
+ axios.post('/user/12345', {
731
+ name: 'new name'
732
+ }, {
733
+ cancelToken: source.token
734
+ })
735
+
736
+ // cancel the request (the message parameter is optional)
737
+ source.cancel('Operation canceled by the user.');
738
+ ```
739
+
740
+ You can also create a cancel token by passing an executor function to the `CancelToken` constructor:
741
+
742
+ ```js
743
+ const CancelToken = axios.CancelToken;
744
+ let cancel;
745
+
746
+ axios.get('/user/12345', {
747
+ cancelToken: new CancelToken(function executor(c) {
748
+ // An executor function receives a cancel function as a parameter
749
+ cancel = c;
750
+ })
751
+ });
752
+
753
+ // cancel the request
754
+ cancel();
755
+ ```
756
+
757
+ Axios supports AbortController to abort requests in [`fetch API`](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API#aborting_a_fetch) way:
758
+ ```js
759
+ const controller = new AbortController();
760
+
761
+ axios.get('/foo/bar', {
762
+ signal: controller.signal
763
+ }).then(function(response) {
764
+ //...
765
+ });
766
+ // cancel the request
767
+ controller.abort()
768
+ ```
769
+
770
+ > Note: you can cancel several requests with the same cancel token/abort controller.
771
+ > If a cancellation token is already cancelled at the moment of starting an Axios request, then the request is cancelled immediately, without any attempts to make real request.
772
+
773
+ ## Using application/x-www-form-urlencoded format
774
+
775
+ By default, axios serializes JavaScript objects to `JSON`. To send data in the `application/x-www-form-urlencoded` format instead, you can use one of the following options.
776
+
777
+ ### Browser
778
+
779
+ In a browser, you can use the [`URLSearchParams`](https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams) API as follows:
780
+
781
+ ```js
782
+ const params = new URLSearchParams();
783
+ params.append('param1', 'value1');
784
+ params.append('param2', 'value2');
785
+ axios.post('/foo', params);
786
+ ```
787
+
788
+ > Note that `URLSearchParams` is not supported by all browsers (see [caniuse.com](http://www.caniuse.com/#feat=urlsearchparams)), but there is a [polyfill](https://github.com/WebReflection/url-search-params) available (make sure to polyfill the global environment).
789
+
790
+ Alternatively, you can encode data using the [`qs`](https://github.com/ljharb/qs) library:
791
+
792
+ ```js
793
+ const qs = require('qs');
794
+ axios.post('/foo', qs.stringify({ 'bar': 123 }));
795
+ ```
796
+
797
+ Or in another way (ES6),
798
+
799
+ ```js
800
+ import qs from 'qs';
801
+ const data = { 'bar': 123 };
802
+ const options = {
803
+ method: 'POST',
804
+ headers: { 'content-type': 'application/x-www-form-urlencoded' },
805
+ data: qs.stringify(data),
806
+ url,
807
+ };
808
+ axios(options);
809
+ ```
810
+
811
+ ### Node.js
812
+
813
+ #### Query string
814
+
815
+ In node.js, you can use the [`querystring`](https://nodejs.org/api/querystring.html) module as follows:
816
+
817
+ ```js
818
+ const querystring = require('querystring');
819
+ axios.post('http://something.com/', querystring.stringify({ foo: 'bar' }));
820
+ ```
821
+
822
+ or ['URLSearchParams'](https://nodejs.org/api/url.html#url_class_urlsearchparams) from ['url module'](https://nodejs.org/api/url.html) as follows:
823
+
824
+ ```js
825
+ const url = require('url');
826
+ const params = new url.URLSearchParams({ foo: 'bar' });
827
+ axios.post('http://something.com/', params.toString());
828
+ ```
829
+
830
+ You can also use the [`qs`](https://github.com/ljharb/qs) library.
831
+
832
+ ###### NOTE
833
+ The `qs` library is preferable if you need to stringify nested objects, as the `querystring` method has known issues with that use case (https://github.com/nodejs/node-v0.x-archive/issues/1665).
834
+
835
+ #### Form data
836
+
837
+ In node.js, you can use the [`form-data`](https://github.com/form-data/form-data) library as follows:
838
+
839
+ ```js
840
+ const FormData = require('form-data');
841
+
842
+ const form = new FormData();
843
+ form.append('my_field', 'my value');
844
+ form.append('my_buffer', new Buffer(10));
845
+ form.append('my_file', fs.createReadStream('/foo/bar.jpg'));
846
+
847
+ axios.post('https://example.com', form, { headers: form.getHeaders() })
848
+ ```
849
+
850
+ Alternatively, use an interceptor:
851
+
852
+ ```js
853
+ axios.interceptors.request.use(config => {
854
+ if (config.data instanceof FormData) {
855
+ Object.assign(config.headers, config.data.getHeaders());
856
+ }
857
+ return config;
858
+ });
859
+ ```
860
+
861
+ ## Semver
862
+
863
+ Until axios reaches a `1.0` release, breaking changes will be released with a new minor version. For example `0.5.1`, and `0.5.4` will have the same API, but `0.6.0` will have breaking changes.
864
+
865
+ ## Promises
866
+
867
+ axios depends on a native ES6 Promise implementation to be [supported](http://caniuse.com/promises).
868
+ If your environment doesn't support ES6 Promises, you can [polyfill](https://github.com/jakearchibald/es6-promise).
869
+
870
+ ## TypeScript
871
+
872
+ axios includes [TypeScript](http://typescriptlang.org) definitions and a type guard for axios errors.
873
+
874
+ ```typescript
875
+ let user: User = null;
876
+ try {
877
+ const { data } = await axios.get('/user?ID=12345');
878
+ user = data.userDetails;
879
+ } catch (error) {
880
+ if (axios.isAxiosError(error)) {
881
+ handleAxiosError(error);
882
+ } else {
883
+ handleUnexpectedError(error);
884
+ }
885
+ }
886
+ ```
887
+
888
+ ## Online one-click setup
889
+
890
+ You can use Gitpod an online IDE(which is free for Open Source) for contributing or running the examples online.
891
+
892
+ [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/axios/axios/blob/master/examples/server.js)
893
+
894
+
895
+ ## Resources
896
+
897
+ * [Changelog](https://github.com/axios/axios/blob/master/CHANGELOG.md)
898
+ * [Upgrade Guide](https://github.com/axios/axios/blob/master/UPGRADE_GUIDE.md)
899
+ * [Ecosystem](https://github.com/axios/axios/blob/master/ECOSYSTEM.md)
900
+ * [Contributing Guide](https://github.com/axios/axios/blob/master/CONTRIBUTING.md)
901
+ * [Code of Conduct](https://github.com/axios/axios/blob/master/CODE_OF_CONDUCT.md)
902
+
903
+ ## Credits
904
+
905
+ axios is heavily inspired by the [$http service](https://docs.angularjs.org/api/ng/service/$http) provided in [AngularJS](https://angularjs.org/). Ultimately axios is an effort to provide a standalone `$http`-like service for use outside of AngularJS.
906
+
907
+ ## License
908
+
909
+ [MIT](LICENSE)
node_modules/axios/SECURITY.md ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ # Security Policy
2
+
3
+ ## Reporting a Vulnerability
4
+
5
+ Please report security issues to jasonsaayman@gmail.com
node_modules/axios/UPGRADE_GUIDE.md ADDED
@@ -0,0 +1,168 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Upgrade Guide
2
+
3
+ ### 0.18.x -> 0.19.0
4
+
5
+ #### HTTPS Proxies
6
+
7
+ Routing through an https proxy now requires setting the `protocol` attribute of the proxy configuration to `https`
8
+
9
+ ### 0.15.x -> 0.16.0
10
+
11
+ #### `Promise` Type Declarations
12
+
13
+ The `Promise` type declarations have been removed from the axios typings in favor of the built-in type declarations. If you use axios in a TypeScript project that targets `ES5`, please make sure to include the `es2015.promise` lib. Please see [this post](https://blog.mariusschulz.com/2016/11/25/typescript-2-0-built-in-type-declarations) for details.
14
+
15
+ ### 0.13.x -> 0.14.0
16
+
17
+ #### TypeScript Definitions
18
+
19
+ The axios TypeScript definitions have been updated to match the axios API and use the ES2015 module syntax.
20
+
21
+ Please use the following `import` statement to import axios in TypeScript:
22
+
23
+ ```typescript
24
+ import axios from 'axios';
25
+
26
+ axios.get('/foo')
27
+ .then(response => console.log(response))
28
+ .catch(error => console.log(error));
29
+ ```
30
+
31
+ #### `agent` Config Option
32
+
33
+ The `agent` config option has been replaced with two new options: `httpAgent` and `httpsAgent`. Please use them instead.
34
+
35
+ ```js
36
+ {
37
+ // Define a custom agent for HTTP
38
+ httpAgent: new http.Agent({ keepAlive: true }),
39
+ // Define a custom agent for HTTPS
40
+ httpsAgent: new https.Agent({ keepAlive: true })
41
+ }
42
+ ```
43
+
44
+ #### `progress` Config Option
45
+
46
+ The `progress` config option has been replaced with the `onUploadProgress` and `onDownloadProgress` options.
47
+
48
+ ```js
49
+ {
50
+ // Define a handler for upload progress events
51
+ onUploadProgress: function (progressEvent) {
52
+ // ...
53
+ },
54
+
55
+ // Define a handler for download progress events
56
+ onDownloadProgress: function (progressEvent) {
57
+ // ...
58
+ }
59
+ }
60
+ ```
61
+
62
+ ### 0.12.x -> 0.13.0
63
+
64
+ The `0.13.0` release contains several changes to custom adapters and error handling.
65
+
66
+ #### Error Handling
67
+
68
+ Previous to this release an error could either be a server response with bad status code or an actual `Error`. With this release Promise will always reject with an `Error`. In the case that a response was received, the `Error` will also include the response.
69
+
70
+ ```js
71
+ axios.get('/user/12345')
72
+ .catch((error) => {
73
+ console.log(error.message);
74
+ console.log(error.code); // Not always specified
75
+ console.log(error.config); // The config that was used to make the request
76
+ console.log(error.response); // Only available if response was received from the server
77
+ });
78
+ ```
79
+
80
+ #### Request Adapters
81
+
82
+ This release changes a few things about how request adapters work. Please take note if you are using your own custom adapter.
83
+
84
+ 1. Response transformer is now called outside of adapter.
85
+ 2. Request adapter returns a `Promise`.
86
+
87
+ This means that you no longer need to invoke `transformData` on response data. You will also no longer receive `resolve` and `reject` as arguments in your adapter.
88
+
89
+ Previous code:
90
+
91
+ ```js
92
+ function myAdapter(resolve, reject, config) {
93
+ var response = {
94
+ data: transformData(
95
+ responseData,
96
+ responseHeaders,
97
+ config.transformResponse
98
+ ),
99
+ status: request.status,
100
+ statusText: request.statusText,
101
+ headers: responseHeaders
102
+ };
103
+ settle(resolve, reject, response);
104
+ }
105
+ ```
106
+
107
+ New code:
108
+
109
+ ```js
110
+ function myAdapter(config) {
111
+ return new Promise(function (resolve, reject) {
112
+ var response = {
113
+ data: responseData,
114
+ status: request.status,
115
+ statusText: request.statusText,
116
+ headers: responseHeaders
117
+ };
118
+ settle(resolve, reject, response);
119
+ });
120
+ }
121
+ ```
122
+
123
+ See the related commits for more details:
124
+ - [Response transformers](https://github.com/axios/axios/commit/10eb23865101f9347570552c04e9d6211376e25e)
125
+ - [Request adapter Promise](https://github.com/axios/axios/commit/157efd5615890301824e3121cc6c9d2f9b21f94a)
126
+
127
+ ### 0.5.x -> 0.6.0
128
+
129
+ The `0.6.0` release contains mostly bug fixes, but there are a couple things to be aware of when upgrading.
130
+
131
+ #### ES6 Promise Polyfill
132
+
133
+ Up until the `0.6.0` release ES6 `Promise` was being polyfilled using [es6-promise](https://github.com/jakearchibald/es6-promise). With this release, the polyfill has been removed, and you will need to supply it yourself if your environment needs it.
134
+
135
+ ```js
136
+ require('es6-promise').polyfill();
137
+ var axios = require('axios');
138
+ ```
139
+
140
+ This will polyfill the global environment, and only needs to be done once.
141
+
142
+ #### `axios.success`/`axios.error`
143
+
144
+ The `success`, and `error` aliases were deprecated in [0.4.0](https://github.com/axios/axios/blob/master/CHANGELOG.md#040-oct-03-2014). As of this release they have been removed entirely. Instead please use `axios.then`, and `axios.catch` respectively.
145
+
146
+ ```js
147
+ axios.get('some/url')
148
+ .then(function (res) {
149
+ /* ... */
150
+ })
151
+ .catch(function (err) {
152
+ /* ... */
153
+ });
154
+ ```
155
+
156
+ #### UMD
157
+
158
+ Previous versions of axios shipped with an AMD, CommonJS, and Global build. This has all been rolled into a single UMD build.
159
+
160
+ ```js
161
+ // AMD
162
+ require(['bower_components/axios/dist/axios'], function (axios) {
163
+ /* ... */
164
+ });
165
+
166
+ // CommonJS
167
+ var axios = require('axios/dist/axios');
168
+ ```
node_modules/axios/dist/axios.js ADDED
@@ -0,0 +1,2293 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ (function webpackUniversalModuleDefinition(root, factory) {
2
+ if(typeof exports === 'object' && typeof module === 'object')
3
+ module.exports = factory();
4
+ else if(typeof define === 'function' && define.amd)
5
+ define([], factory);
6
+ else if(typeof exports === 'object')
7
+ exports["axios"] = factory();
8
+ else
9
+ root["axios"] = factory();
10
+ })(this, function() {
11
+ return /******/ (function(modules) { // webpackBootstrap
12
+ /******/ // The module cache
13
+ /******/ var installedModules = {};
14
+ /******/
15
+ /******/ // The require function
16
+ /******/ function __webpack_require__(moduleId) {
17
+ /******/
18
+ /******/ // Check if module is in cache
19
+ /******/ if(installedModules[moduleId]) {
20
+ /******/ return installedModules[moduleId].exports;
21
+ /******/ }
22
+ /******/ // Create a new module (and put it into the cache)
23
+ /******/ var module = installedModules[moduleId] = {
24
+ /******/ i: moduleId,
25
+ /******/ l: false,
26
+ /******/ exports: {}
27
+ /******/ };
28
+ /******/
29
+ /******/ // Execute the module function
30
+ /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
31
+ /******/
32
+ /******/ // Flag the module as loaded
33
+ /******/ module.l = true;
34
+ /******/
35
+ /******/ // Return the exports of the module
36
+ /******/ return module.exports;
37
+ /******/ }
38
+ /******/
39
+ /******/
40
+ /******/ // expose the modules object (__webpack_modules__)
41
+ /******/ __webpack_require__.m = modules;
42
+ /******/
43
+ /******/ // expose the module cache
44
+ /******/ __webpack_require__.c = installedModules;
45
+ /******/
46
+ /******/ // define getter function for harmony exports
47
+ /******/ __webpack_require__.d = function(exports, name, getter) {
48
+ /******/ if(!__webpack_require__.o(exports, name)) {
49
+ /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
50
+ /******/ }
51
+ /******/ };
52
+ /******/
53
+ /******/ // define __esModule on exports
54
+ /******/ __webpack_require__.r = function(exports) {
55
+ /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
56
+ /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
57
+ /******/ }
58
+ /******/ Object.defineProperty(exports, '__esModule', { value: true });
59
+ /******/ };
60
+ /******/
61
+ /******/ // create a fake namespace object
62
+ /******/ // mode & 1: value is a module id, require it
63
+ /******/ // mode & 2: merge all properties of value into the ns
64
+ /******/ // mode & 4: return value when already ns object
65
+ /******/ // mode & 8|1: behave like require
66
+ /******/ __webpack_require__.t = function(value, mode) {
67
+ /******/ if(mode & 1) value = __webpack_require__(value);
68
+ /******/ if(mode & 8) return value;
69
+ /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
70
+ /******/ var ns = Object.create(null);
71
+ /******/ __webpack_require__.r(ns);
72
+ /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
73
+ /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
74
+ /******/ return ns;
75
+ /******/ };
76
+ /******/
77
+ /******/ // getDefaultExport function for compatibility with non-harmony modules
78
+ /******/ __webpack_require__.n = function(module) {
79
+ /******/ var getter = module && module.__esModule ?
80
+ /******/ function getDefault() { return module['default']; } :
81
+ /******/ function getModuleExports() { return module; };
82
+ /******/ __webpack_require__.d(getter, 'a', getter);
83
+ /******/ return getter;
84
+ /******/ };
85
+ /******/
86
+ /******/ // Object.prototype.hasOwnProperty.call
87
+ /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
88
+ /******/
89
+ /******/ // __webpack_public_path__
90
+ /******/ __webpack_require__.p = "";
91
+ /******/
92
+ /******/
93
+ /******/ // Load entry module and return exports
94
+ /******/ return __webpack_require__(__webpack_require__.s = "./index.js");
95
+ /******/ })
96
+ /************************************************************************/
97
+ /******/ ({
98
+
99
+ /***/ "./index.js":
100
+ /*!******************!*\
101
+ !*** ./index.js ***!
102
+ \******************/
103
+ /*! no static exports found */
104
+ /***/ (function(module, exports, __webpack_require__) {
105
+
106
+ module.exports = __webpack_require__(/*! ./lib/axios */ "./lib/axios.js");
107
+
108
+ /***/ }),
109
+
110
+ /***/ "./lib/adapters/xhr.js":
111
+ /*!*****************************!*\
112
+ !*** ./lib/adapters/xhr.js ***!
113
+ \*****************************/
114
+ /*! no static exports found */
115
+ /***/ (function(module, exports, __webpack_require__) {
116
+
117
+ "use strict";
118
+
119
+
120
+ var utils = __webpack_require__(/*! ./../utils */ "./lib/utils.js");
121
+ var settle = __webpack_require__(/*! ./../core/settle */ "./lib/core/settle.js");
122
+ var cookies = __webpack_require__(/*! ./../helpers/cookies */ "./lib/helpers/cookies.js");
123
+ var buildURL = __webpack_require__(/*! ./../helpers/buildURL */ "./lib/helpers/buildURL.js");
124
+ var buildFullPath = __webpack_require__(/*! ../core/buildFullPath */ "./lib/core/buildFullPath.js");
125
+ var parseHeaders = __webpack_require__(/*! ./../helpers/parseHeaders */ "./lib/helpers/parseHeaders.js");
126
+ var isURLSameOrigin = __webpack_require__(/*! ./../helpers/isURLSameOrigin */ "./lib/helpers/isURLSameOrigin.js");
127
+ var createError = __webpack_require__(/*! ../core/createError */ "./lib/core/createError.js");
128
+ var transitionalDefaults = __webpack_require__(/*! ../defaults/transitional */ "./lib/defaults/transitional.js");
129
+ var Cancel = __webpack_require__(/*! ../cancel/Cancel */ "./lib/cancel/Cancel.js");
130
+
131
+ module.exports = function xhrAdapter(config) {
132
+ return new Promise(function dispatchXhrRequest(resolve, reject) {
133
+ var requestData = config.data;
134
+ var requestHeaders = config.headers;
135
+ var responseType = config.responseType;
136
+ var onCanceled;
137
+ function done() {
138
+ if (config.cancelToken) {
139
+ config.cancelToken.unsubscribe(onCanceled);
140
+ }
141
+
142
+ if (config.signal) {
143
+ config.signal.removeEventListener('abort', onCanceled);
144
+ }
145
+ }
146
+
147
+ if (utils.isFormData(requestData)) {
148
+ delete requestHeaders['Content-Type']; // Let the browser set it
149
+ }
150
+
151
+ var request = new XMLHttpRequest();
152
+
153
+ // HTTP basic authentication
154
+ if (config.auth) {
155
+ var username = config.auth.username || '';
156
+ var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';
157
+ requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);
158
+ }
159
+
160
+ var fullPath = buildFullPath(config.baseURL, config.url);
161
+ request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);
162
+
163
+ // Set the request timeout in MS
164
+ request.timeout = config.timeout;
165
+
166
+ function onloadend() {
167
+ if (!request) {
168
+ return;
169
+ }
170
+ // Prepare the response
171
+ var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;
172
+ var responseData = !responseType || responseType === 'text' || responseType === 'json' ?
173
+ request.responseText : request.response;
174
+ var response = {
175
+ data: responseData,
176
+ status: request.status,
177
+ statusText: request.statusText,
178
+ headers: responseHeaders,
179
+ config: config,
180
+ request: request
181
+ };
182
+
183
+ settle(function _resolve(value) {
184
+ resolve(value);
185
+ done();
186
+ }, function _reject(err) {
187
+ reject(err);
188
+ done();
189
+ }, response);
190
+
191
+ // Clean up request
192
+ request = null;
193
+ }
194
+
195
+ if ('onloadend' in request) {
196
+ // Use onloadend if available
197
+ request.onloadend = onloadend;
198
+ } else {
199
+ // Listen for ready state to emulate onloadend
200
+ request.onreadystatechange = function handleLoad() {
201
+ if (!request || request.readyState !== 4) {
202
+ return;
203
+ }
204
+
205
+ // The request errored out and we didn't get a response, this will be
206
+ // handled by onerror instead
207
+ // With one exception: request that using file: protocol, most browsers
208
+ // will return status as 0 even though it's a successful request
209
+ if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {
210
+ return;
211
+ }
212
+ // readystate handler is calling before onerror or ontimeout handlers,
213
+ // so we should call onloadend on the next 'tick'
214
+ setTimeout(onloadend);
215
+ };
216
+ }
217
+
218
+ // Handle browser request cancellation (as opposed to a manual cancellation)
219
+ request.onabort = function handleAbort() {
220
+ if (!request) {
221
+ return;
222
+ }
223
+
224
+ reject(createError('Request aborted', config, 'ECONNABORTED', request));
225
+
226
+ // Clean up request
227
+ request = null;
228
+ };
229
+
230
+ // Handle low level network errors
231
+ request.onerror = function handleError() {
232
+ // Real errors are hidden from us by the browser
233
+ // onerror should only fire if it's a network error
234
+ reject(createError('Network Error', config, null, request));
235
+
236
+ // Clean up request
237
+ request = null;
238
+ };
239
+
240
+ // Handle timeout
241
+ request.ontimeout = function handleTimeout() {
242
+ var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';
243
+ var transitional = config.transitional || transitionalDefaults;
244
+ if (config.timeoutErrorMessage) {
245
+ timeoutErrorMessage = config.timeoutErrorMessage;
246
+ }
247
+ reject(createError(
248
+ timeoutErrorMessage,
249
+ config,
250
+ transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',
251
+ request));
252
+
253
+ // Clean up request
254
+ request = null;
255
+ };
256
+
257
+ // Add xsrf header
258
+ // This is only done if running in a standard browser environment.
259
+ // Specifically not if we're in a web worker, or react-native.
260
+ if (utils.isStandardBrowserEnv()) {
261
+ // Add xsrf header
262
+ var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?
263
+ cookies.read(config.xsrfCookieName) :
264
+ undefined;
265
+
266
+ if (xsrfValue) {
267
+ requestHeaders[config.xsrfHeaderName] = xsrfValue;
268
+ }
269
+ }
270
+
271
+ // Add headers to the request
272
+ if ('setRequestHeader' in request) {
273
+ utils.forEach(requestHeaders, function setRequestHeader(val, key) {
274
+ if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {
275
+ // Remove Content-Type if data is undefined
276
+ delete requestHeaders[key];
277
+ } else {
278
+ // Otherwise add header to the request
279
+ request.setRequestHeader(key, val);
280
+ }
281
+ });
282
+ }
283
+
284
+ // Add withCredentials to request if needed
285
+ if (!utils.isUndefined(config.withCredentials)) {
286
+ request.withCredentials = !!config.withCredentials;
287
+ }
288
+
289
+ // Add responseType to request if needed
290
+ if (responseType && responseType !== 'json') {
291
+ request.responseType = config.responseType;
292
+ }
293
+
294
+ // Handle progress if needed
295
+ if (typeof config.onDownloadProgress === 'function') {
296
+ request.addEventListener('progress', config.onDownloadProgress);
297
+ }
298
+
299
+ // Not all browsers support upload events
300
+ if (typeof config.onUploadProgress === 'function' && request.upload) {
301
+ request.upload.addEventListener('progress', config.onUploadProgress);
302
+ }
303
+
304
+ if (config.cancelToken || config.signal) {
305
+ // Handle cancellation
306
+ // eslint-disable-next-line func-names
307
+ onCanceled = function(cancel) {
308
+ if (!request) {
309
+ return;
310
+ }
311
+ reject(!cancel || (cancel && cancel.type) ? new Cancel('canceled') : cancel);
312
+ request.abort();
313
+ request = null;
314
+ };
315
+
316
+ config.cancelToken && config.cancelToken.subscribe(onCanceled);
317
+ if (config.signal) {
318
+ config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);
319
+ }
320
+ }
321
+
322
+ if (!requestData) {
323
+ requestData = null;
324
+ }
325
+
326
+ // Send the request
327
+ request.send(requestData);
328
+ });
329
+ };
330
+
331
+
332
+ /***/ }),
333
+
334
+ /***/ "./lib/axios.js":
335
+ /*!**********************!*\
336
+ !*** ./lib/axios.js ***!
337
+ \**********************/
338
+ /*! no static exports found */
339
+ /***/ (function(module, exports, __webpack_require__) {
340
+
341
+ "use strict";
342
+
343
+
344
+ var utils = __webpack_require__(/*! ./utils */ "./lib/utils.js");
345
+ var bind = __webpack_require__(/*! ./helpers/bind */ "./lib/helpers/bind.js");
346
+ var Axios = __webpack_require__(/*! ./core/Axios */ "./lib/core/Axios.js");
347
+ var mergeConfig = __webpack_require__(/*! ./core/mergeConfig */ "./lib/core/mergeConfig.js");
348
+ var defaults = __webpack_require__(/*! ./defaults */ "./lib/defaults/index.js");
349
+
350
+ /**
351
+ * Create an instance of Axios
352
+ *
353
+ * @param {Object} defaultConfig The default config for the instance
354
+ * @return {Axios} A new instance of Axios
355
+ */
356
+ function createInstance(defaultConfig) {
357
+ var context = new Axios(defaultConfig);
358
+ var instance = bind(Axios.prototype.request, context);
359
+
360
+ // Copy axios.prototype to instance
361
+ utils.extend(instance, Axios.prototype, context);
362
+
363
+ // Copy context to instance
364
+ utils.extend(instance, context);
365
+
366
+ // Factory for creating new instances
367
+ instance.create = function create(instanceConfig) {
368
+ return createInstance(mergeConfig(defaultConfig, instanceConfig));
369
+ };
370
+
371
+ return instance;
372
+ }
373
+
374
+ // Create the default instance to be exported
375
+ var axios = createInstance(defaults);
376
+
377
+ // Expose Axios class to allow class inheritance
378
+ axios.Axios = Axios;
379
+
380
+ // Expose Cancel & CancelToken
381
+ axios.Cancel = __webpack_require__(/*! ./cancel/Cancel */ "./lib/cancel/Cancel.js");
382
+ axios.CancelToken = __webpack_require__(/*! ./cancel/CancelToken */ "./lib/cancel/CancelToken.js");
383
+ axios.isCancel = __webpack_require__(/*! ./cancel/isCancel */ "./lib/cancel/isCancel.js");
384
+ axios.VERSION = __webpack_require__(/*! ./env/data */ "./lib/env/data.js").version;
385
+
386
+ // Expose all/spread
387
+ axios.all = function all(promises) {
388
+ return Promise.all(promises);
389
+ };
390
+ axios.spread = __webpack_require__(/*! ./helpers/spread */ "./lib/helpers/spread.js");
391
+
392
+ // Expose isAxiosError
393
+ axios.isAxiosError = __webpack_require__(/*! ./helpers/isAxiosError */ "./lib/helpers/isAxiosError.js");
394
+
395
+ module.exports = axios;
396
+
397
+ // Allow use of default import syntax in TypeScript
398
+ module.exports.default = axios;
399
+
400
+
401
+ /***/ }),
402
+
403
+ /***/ "./lib/cancel/Cancel.js":
404
+ /*!******************************!*\
405
+ !*** ./lib/cancel/Cancel.js ***!
406
+ \******************************/
407
+ /*! no static exports found */
408
+ /***/ (function(module, exports, __webpack_require__) {
409
+
410
+ "use strict";
411
+
412
+
413
+ /**
414
+ * A `Cancel` is an object that is thrown when an operation is canceled.
415
+ *
416
+ * @class
417
+ * @param {string=} message The message.
418
+ */
419
+ function Cancel(message) {
420
+ this.message = message;
421
+ }
422
+
423
+ Cancel.prototype.toString = function toString() {
424
+ return 'Cancel' + (this.message ? ': ' + this.message : '');
425
+ };
426
+
427
+ Cancel.prototype.__CANCEL__ = true;
428
+
429
+ module.exports = Cancel;
430
+
431
+
432
+ /***/ }),
433
+
434
+ /***/ "./lib/cancel/CancelToken.js":
435
+ /*!***********************************!*\
436
+ !*** ./lib/cancel/CancelToken.js ***!
437
+ \***********************************/
438
+ /*! no static exports found */
439
+ /***/ (function(module, exports, __webpack_require__) {
440
+
441
+ "use strict";
442
+
443
+
444
+ var Cancel = __webpack_require__(/*! ./Cancel */ "./lib/cancel/Cancel.js");
445
+
446
+ /**
447
+ * A `CancelToken` is an object that can be used to request cancellation of an operation.
448
+ *
449
+ * @class
450
+ * @param {Function} executor The executor function.
451
+ */
452
+ function CancelToken(executor) {
453
+ if (typeof executor !== 'function') {
454
+ throw new TypeError('executor must be a function.');
455
+ }
456
+
457
+ var resolvePromise;
458
+
459
+ this.promise = new Promise(function promiseExecutor(resolve) {
460
+ resolvePromise = resolve;
461
+ });
462
+
463
+ var token = this;
464
+
465
+ // eslint-disable-next-line func-names
466
+ this.promise.then(function(cancel) {
467
+ if (!token._listeners) return;
468
+
469
+ var i;
470
+ var l = token._listeners.length;
471
+
472
+ for (i = 0; i < l; i++) {
473
+ token._listeners[i](cancel);
474
+ }
475
+ token._listeners = null;
476
+ });
477
+
478
+ // eslint-disable-next-line func-names
479
+ this.promise.then = function(onfulfilled) {
480
+ var _resolve;
481
+ // eslint-disable-next-line func-names
482
+ var promise = new Promise(function(resolve) {
483
+ token.subscribe(resolve);
484
+ _resolve = resolve;
485
+ }).then(onfulfilled);
486
+
487
+ promise.cancel = function reject() {
488
+ token.unsubscribe(_resolve);
489
+ };
490
+
491
+ return promise;
492
+ };
493
+
494
+ executor(function cancel(message) {
495
+ if (token.reason) {
496
+ // Cancellation has already been requested
497
+ return;
498
+ }
499
+
500
+ token.reason = new Cancel(message);
501
+ resolvePromise(token.reason);
502
+ });
503
+ }
504
+
505
+ /**
506
+ * Throws a `Cancel` if cancellation has been requested.
507
+ */
508
+ CancelToken.prototype.throwIfRequested = function throwIfRequested() {
509
+ if (this.reason) {
510
+ throw this.reason;
511
+ }
512
+ };
513
+
514
+ /**
515
+ * Subscribe to the cancel signal
516
+ */
517
+
518
+ CancelToken.prototype.subscribe = function subscribe(listener) {
519
+ if (this.reason) {
520
+ listener(this.reason);
521
+ return;
522
+ }
523
+
524
+ if (this._listeners) {
525
+ this._listeners.push(listener);
526
+ } else {
527
+ this._listeners = [listener];
528
+ }
529
+ };
530
+
531
+ /**
532
+ * Unsubscribe from the cancel signal
533
+ */
534
+
535
+ CancelToken.prototype.unsubscribe = function unsubscribe(listener) {
536
+ if (!this._listeners) {
537
+ return;
538
+ }
539
+ var index = this._listeners.indexOf(listener);
540
+ if (index !== -1) {
541
+ this._listeners.splice(index, 1);
542
+ }
543
+ };
544
+
545
+ /**
546
+ * Returns an object that contains a new `CancelToken` and a function that, when called,
547
+ * cancels the `CancelToken`.
548
+ */
549
+ CancelToken.source = function source() {
550
+ var cancel;
551
+ var token = new CancelToken(function executor(c) {
552
+ cancel = c;
553
+ });
554
+ return {
555
+ token: token,
556
+ cancel: cancel
557
+ };
558
+ };
559
+
560
+ module.exports = CancelToken;
561
+
562
+
563
+ /***/ }),
564
+
565
+ /***/ "./lib/cancel/isCancel.js":
566
+ /*!********************************!*\
567
+ !*** ./lib/cancel/isCancel.js ***!
568
+ \********************************/
569
+ /*! no static exports found */
570
+ /***/ (function(module, exports, __webpack_require__) {
571
+
572
+ "use strict";
573
+
574
+
575
+ module.exports = function isCancel(value) {
576
+ return !!(value && value.__CANCEL__);
577
+ };
578
+
579
+
580
+ /***/ }),
581
+
582
+ /***/ "./lib/core/Axios.js":
583
+ /*!***************************!*\
584
+ !*** ./lib/core/Axios.js ***!
585
+ \***************************/
586
+ /*! no static exports found */
587
+ /***/ (function(module, exports, __webpack_require__) {
588
+
589
+ "use strict";
590
+
591
+
592
+ var utils = __webpack_require__(/*! ./../utils */ "./lib/utils.js");
593
+ var buildURL = __webpack_require__(/*! ../helpers/buildURL */ "./lib/helpers/buildURL.js");
594
+ var InterceptorManager = __webpack_require__(/*! ./InterceptorManager */ "./lib/core/InterceptorManager.js");
595
+ var dispatchRequest = __webpack_require__(/*! ./dispatchRequest */ "./lib/core/dispatchRequest.js");
596
+ var mergeConfig = __webpack_require__(/*! ./mergeConfig */ "./lib/core/mergeConfig.js");
597
+ var validator = __webpack_require__(/*! ../helpers/validator */ "./lib/helpers/validator.js");
598
+
599
+ var validators = validator.validators;
600
+ /**
601
+ * Create a new instance of Axios
602
+ *
603
+ * @param {Object} instanceConfig The default config for the instance
604
+ */
605
+ function Axios(instanceConfig) {
606
+ this.defaults = instanceConfig;
607
+ this.interceptors = {
608
+ request: new InterceptorManager(),
609
+ response: new InterceptorManager()
610
+ };
611
+ }
612
+
613
+ /**
614
+ * Dispatch a request
615
+ *
616
+ * @param {Object} config The config specific for this request (merged with this.defaults)
617
+ */
618
+ Axios.prototype.request = function request(configOrUrl, config) {
619
+ /*eslint no-param-reassign:0*/
620
+ // Allow for axios('example/url'[, config]) a la fetch API
621
+ if (typeof configOrUrl === 'string') {
622
+ config = config || {};
623
+ config.url = configOrUrl;
624
+ } else {
625
+ config = configOrUrl || {};
626
+ }
627
+
628
+ config = mergeConfig(this.defaults, config);
629
+
630
+ // Set config.method
631
+ if (config.method) {
632
+ config.method = config.method.toLowerCase();
633
+ } else if (this.defaults.method) {
634
+ config.method = this.defaults.method.toLowerCase();
635
+ } else {
636
+ config.method = 'get';
637
+ }
638
+
639
+ var transitional = config.transitional;
640
+
641
+ if (transitional !== undefined) {
642
+ validator.assertOptions(transitional, {
643
+ silentJSONParsing: validators.transitional(validators.boolean),
644
+ forcedJSONParsing: validators.transitional(validators.boolean),
645
+ clarifyTimeoutError: validators.transitional(validators.boolean)
646
+ }, false);
647
+ }
648
+
649
+ // filter out skipped interceptors
650
+ var requestInterceptorChain = [];
651
+ var synchronousRequestInterceptors = true;
652
+ this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {
653
+ if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {
654
+ return;
655
+ }
656
+
657
+ synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;
658
+
659
+ requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);
660
+ });
661
+
662
+ var responseInterceptorChain = [];
663
+ this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {
664
+ responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);
665
+ });
666
+
667
+ var promise;
668
+
669
+ if (!synchronousRequestInterceptors) {
670
+ var chain = [dispatchRequest, undefined];
671
+
672
+ Array.prototype.unshift.apply(chain, requestInterceptorChain);
673
+ chain = chain.concat(responseInterceptorChain);
674
+
675
+ promise = Promise.resolve(config);
676
+ while (chain.length) {
677
+ promise = promise.then(chain.shift(), chain.shift());
678
+ }
679
+
680
+ return promise;
681
+ }
682
+
683
+
684
+ var newConfig = config;
685
+ while (requestInterceptorChain.length) {
686
+ var onFulfilled = requestInterceptorChain.shift();
687
+ var onRejected = requestInterceptorChain.shift();
688
+ try {
689
+ newConfig = onFulfilled(newConfig);
690
+ } catch (error) {
691
+ onRejected(error);
692
+ break;
693
+ }
694
+ }
695
+
696
+ try {
697
+ promise = dispatchRequest(newConfig);
698
+ } catch (error) {
699
+ return Promise.reject(error);
700
+ }
701
+
702
+ while (responseInterceptorChain.length) {
703
+ promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());
704
+ }
705
+
706
+ return promise;
707
+ };
708
+
709
+ Axios.prototype.getUri = function getUri(config) {
710
+ config = mergeConfig(this.defaults, config);
711
+ return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\?/, '');
712
+ };
713
+
714
+ // Provide aliases for supported request methods
715
+ utils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {
716
+ /*eslint func-names:0*/
717
+ Axios.prototype[method] = function(url, config) {
718
+ return this.request(mergeConfig(config || {}, {
719
+ method: method,
720
+ url: url,
721
+ data: (config || {}).data
722
+ }));
723
+ };
724
+ });
725
+
726
+ utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {
727
+ /*eslint func-names:0*/
728
+ Axios.prototype[method] = function(url, data, config) {
729
+ return this.request(mergeConfig(config || {}, {
730
+ method: method,
731
+ url: url,
732
+ data: data
733
+ }));
734
+ };
735
+ });
736
+
737
+ module.exports = Axios;
738
+
739
+
740
+ /***/ }),
741
+
742
+ /***/ "./lib/core/InterceptorManager.js":
743
+ /*!****************************************!*\
744
+ !*** ./lib/core/InterceptorManager.js ***!
745
+ \****************************************/
746
+ /*! no static exports found */
747
+ /***/ (function(module, exports, __webpack_require__) {
748
+
749
+ "use strict";
750
+
751
+
752
+ var utils = __webpack_require__(/*! ./../utils */ "./lib/utils.js");
753
+
754
+ function InterceptorManager() {
755
+ this.handlers = [];
756
+ }
757
+
758
+ /**
759
+ * Add a new interceptor to the stack
760
+ *
761
+ * @param {Function} fulfilled The function to handle `then` for a `Promise`
762
+ * @param {Function} rejected The function to handle `reject` for a `Promise`
763
+ *
764
+ * @return {Number} An ID used to remove interceptor later
765
+ */
766
+ InterceptorManager.prototype.use = function use(fulfilled, rejected, options) {
767
+ this.handlers.push({
768
+ fulfilled: fulfilled,
769
+ rejected: rejected,
770
+ synchronous: options ? options.synchronous : false,
771
+ runWhen: options ? options.runWhen : null
772
+ });
773
+ return this.handlers.length - 1;
774
+ };
775
+
776
+ /**
777
+ * Remove an interceptor from the stack
778
+ *
779
+ * @param {Number} id The ID that was returned by `use`
780
+ */
781
+ InterceptorManager.prototype.eject = function eject(id) {
782
+ if (this.handlers[id]) {
783
+ this.handlers[id] = null;
784
+ }
785
+ };
786
+
787
+ /**
788
+ * Iterate over all the registered interceptors
789
+ *
790
+ * This method is particularly useful for skipping over any
791
+ * interceptors that may have become `null` calling `eject`.
792
+ *
793
+ * @param {Function} fn The function to call for each interceptor
794
+ */
795
+ InterceptorManager.prototype.forEach = function forEach(fn) {
796
+ utils.forEach(this.handlers, function forEachHandler(h) {
797
+ if (h !== null) {
798
+ fn(h);
799
+ }
800
+ });
801
+ };
802
+
803
+ module.exports = InterceptorManager;
804
+
805
+
806
+ /***/ }),
807
+
808
+ /***/ "./lib/core/buildFullPath.js":
809
+ /*!***********************************!*\
810
+ !*** ./lib/core/buildFullPath.js ***!
811
+ \***********************************/
812
+ /*! no static exports found */
813
+ /***/ (function(module, exports, __webpack_require__) {
814
+
815
+ "use strict";
816
+
817
+
818
+ var isAbsoluteURL = __webpack_require__(/*! ../helpers/isAbsoluteURL */ "./lib/helpers/isAbsoluteURL.js");
819
+ var combineURLs = __webpack_require__(/*! ../helpers/combineURLs */ "./lib/helpers/combineURLs.js");
820
+
821
+ /**
822
+ * Creates a new URL by combining the baseURL with the requestedURL,
823
+ * only when the requestedURL is not already an absolute URL.
824
+ * If the requestURL is absolute, this function returns the requestedURL untouched.
825
+ *
826
+ * @param {string} baseURL The base URL
827
+ * @param {string} requestedURL Absolute or relative URL to combine
828
+ * @returns {string} The combined full path
829
+ */
830
+ module.exports = function buildFullPath(baseURL, requestedURL) {
831
+ if (baseURL && !isAbsoluteURL(requestedURL)) {
832
+ return combineURLs(baseURL, requestedURL);
833
+ }
834
+ return requestedURL;
835
+ };
836
+
837
+
838
+ /***/ }),
839
+
840
+ /***/ "./lib/core/createError.js":
841
+ /*!*********************************!*\
842
+ !*** ./lib/core/createError.js ***!
843
+ \*********************************/
844
+ /*! no static exports found */
845
+ /***/ (function(module, exports, __webpack_require__) {
846
+
847
+ "use strict";
848
+
849
+
850
+ var enhanceError = __webpack_require__(/*! ./enhanceError */ "./lib/core/enhanceError.js");
851
+
852
+ /**
853
+ * Create an Error with the specified message, config, error code, request and response.
854
+ *
855
+ * @param {string} message The error message.
856
+ * @param {Object} config The config.
857
+ * @param {string} [code] The error code (for example, 'ECONNABORTED').
858
+ * @param {Object} [request] The request.
859
+ * @param {Object} [response] The response.
860
+ * @returns {Error} The created error.
861
+ */
862
+ module.exports = function createError(message, config, code, request, response) {
863
+ var error = new Error(message);
864
+ return enhanceError(error, config, code, request, response);
865
+ };
866
+
867
+
868
+ /***/ }),
869
+
870
+ /***/ "./lib/core/dispatchRequest.js":
871
+ /*!*************************************!*\
872
+ !*** ./lib/core/dispatchRequest.js ***!
873
+ \*************************************/
874
+ /*! no static exports found */
875
+ /***/ (function(module, exports, __webpack_require__) {
876
+
877
+ "use strict";
878
+
879
+
880
+ var utils = __webpack_require__(/*! ./../utils */ "./lib/utils.js");
881
+ var transformData = __webpack_require__(/*! ./transformData */ "./lib/core/transformData.js");
882
+ var isCancel = __webpack_require__(/*! ../cancel/isCancel */ "./lib/cancel/isCancel.js");
883
+ var defaults = __webpack_require__(/*! ../defaults */ "./lib/defaults/index.js");
884
+ var Cancel = __webpack_require__(/*! ../cancel/Cancel */ "./lib/cancel/Cancel.js");
885
+
886
+ /**
887
+ * Throws a `Cancel` if cancellation has been requested.
888
+ */
889
+ function throwIfCancellationRequested(config) {
890
+ if (config.cancelToken) {
891
+ config.cancelToken.throwIfRequested();
892
+ }
893
+
894
+ if (config.signal && config.signal.aborted) {
895
+ throw new Cancel('canceled');
896
+ }
897
+ }
898
+
899
+ /**
900
+ * Dispatch a request to the server using the configured adapter.
901
+ *
902
+ * @param {object} config The config that is to be used for the request
903
+ * @returns {Promise} The Promise to be fulfilled
904
+ */
905
+ module.exports = function dispatchRequest(config) {
906
+ throwIfCancellationRequested(config);
907
+
908
+ // Ensure headers exist
909
+ config.headers = config.headers || {};
910
+
911
+ // Transform request data
912
+ config.data = transformData.call(
913
+ config,
914
+ config.data,
915
+ config.headers,
916
+ config.transformRequest
917
+ );
918
+
919
+ // Flatten headers
920
+ config.headers = utils.merge(
921
+ config.headers.common || {},
922
+ config.headers[config.method] || {},
923
+ config.headers
924
+ );
925
+
926
+ utils.forEach(
927
+ ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],
928
+ function cleanHeaderConfig(method) {
929
+ delete config.headers[method];
930
+ }
931
+ );
932
+
933
+ var adapter = config.adapter || defaults.adapter;
934
+
935
+ return adapter(config).then(function onAdapterResolution(response) {
936
+ throwIfCancellationRequested(config);
937
+
938
+ // Transform response data
939
+ response.data = transformData.call(
940
+ config,
941
+ response.data,
942
+ response.headers,
943
+ config.transformResponse
944
+ );
945
+
946
+ return response;
947
+ }, function onAdapterRejection(reason) {
948
+ if (!isCancel(reason)) {
949
+ throwIfCancellationRequested(config);
950
+
951
+ // Transform response data
952
+ if (reason && reason.response) {
953
+ reason.response.data = transformData.call(
954
+ config,
955
+ reason.response.data,
956
+ reason.response.headers,
957
+ config.transformResponse
958
+ );
959
+ }
960
+ }
961
+
962
+ return Promise.reject(reason);
963
+ });
964
+ };
965
+
966
+
967
+ /***/ }),
968
+
969
+ /***/ "./lib/core/enhanceError.js":
970
+ /*!**********************************!*\
971
+ !*** ./lib/core/enhanceError.js ***!
972
+ \**********************************/
973
+ /*! no static exports found */
974
+ /***/ (function(module, exports, __webpack_require__) {
975
+
976
+ "use strict";
977
+
978
+
979
+ /**
980
+ * Update an Error with the specified config, error code, and response.
981
+ *
982
+ * @param {Error} error The error to update.
983
+ * @param {Object} config The config.
984
+ * @param {string} [code] The error code (for example, 'ECONNABORTED').
985
+ * @param {Object} [request] The request.
986
+ * @param {Object} [response] The response.
987
+ * @returns {Error} The error.
988
+ */
989
+ module.exports = function enhanceError(error, config, code, request, response) {
990
+ error.config = config;
991
+ if (code) {
992
+ error.code = code;
993
+ }
994
+
995
+ error.request = request;
996
+ error.response = response;
997
+ error.isAxiosError = true;
998
+
999
+ error.toJSON = function toJSON() {
1000
+ return {
1001
+ // Standard
1002
+ message: this.message,
1003
+ name: this.name,
1004
+ // Microsoft
1005
+ description: this.description,
1006
+ number: this.number,
1007
+ // Mozilla
1008
+ fileName: this.fileName,
1009
+ lineNumber: this.lineNumber,
1010
+ columnNumber: this.columnNumber,
1011
+ stack: this.stack,
1012
+ // Axios
1013
+ config: this.config,
1014
+ code: this.code,
1015
+ status: this.response && this.response.status ? this.response.status : null
1016
+ };
1017
+ };
1018
+ return error;
1019
+ };
1020
+
1021
+
1022
+ /***/ }),
1023
+
1024
+ /***/ "./lib/core/mergeConfig.js":
1025
+ /*!*********************************!*\
1026
+ !*** ./lib/core/mergeConfig.js ***!
1027
+ \*********************************/
1028
+ /*! no static exports found */
1029
+ /***/ (function(module, exports, __webpack_require__) {
1030
+
1031
+ "use strict";
1032
+
1033
+
1034
+ var utils = __webpack_require__(/*! ../utils */ "./lib/utils.js");
1035
+
1036
+ /**
1037
+ * Config-specific merge-function which creates a new config-object
1038
+ * by merging two configuration objects together.
1039
+ *
1040
+ * @param {Object} config1
1041
+ * @param {Object} config2
1042
+ * @returns {Object} New object resulting from merging config2 to config1
1043
+ */
1044
+ module.exports = function mergeConfig(config1, config2) {
1045
+ // eslint-disable-next-line no-param-reassign
1046
+ config2 = config2 || {};
1047
+ var config = {};
1048
+
1049
+ function getMergedValue(target, source) {
1050
+ if (utils.isPlainObject(target) && utils.isPlainObject(source)) {
1051
+ return utils.merge(target, source);
1052
+ } else if (utils.isPlainObject(source)) {
1053
+ return utils.merge({}, source);
1054
+ } else if (utils.isArray(source)) {
1055
+ return source.slice();
1056
+ }
1057
+ return source;
1058
+ }
1059
+
1060
+ // eslint-disable-next-line consistent-return
1061
+ function mergeDeepProperties(prop) {
1062
+ if (!utils.isUndefined(config2[prop])) {
1063
+ return getMergedValue(config1[prop], config2[prop]);
1064
+ } else if (!utils.isUndefined(config1[prop])) {
1065
+ return getMergedValue(undefined, config1[prop]);
1066
+ }
1067
+ }
1068
+
1069
+ // eslint-disable-next-line consistent-return
1070
+ function valueFromConfig2(prop) {
1071
+ if (!utils.isUndefined(config2[prop])) {
1072
+ return getMergedValue(undefined, config2[prop]);
1073
+ }
1074
+ }
1075
+
1076
+ // eslint-disable-next-line consistent-return
1077
+ function defaultToConfig2(prop) {
1078
+ if (!utils.isUndefined(config2[prop])) {
1079
+ return getMergedValue(undefined, config2[prop]);
1080
+ } else if (!utils.isUndefined(config1[prop])) {
1081
+ return getMergedValue(undefined, config1[prop]);
1082
+ }
1083
+ }
1084
+
1085
+ // eslint-disable-next-line consistent-return
1086
+ function mergeDirectKeys(prop) {
1087
+ if (prop in config2) {
1088
+ return getMergedValue(config1[prop], config2[prop]);
1089
+ } else if (prop in config1) {
1090
+ return getMergedValue(undefined, config1[prop]);
1091
+ }
1092
+ }
1093
+
1094
+ var mergeMap = {
1095
+ 'url': valueFromConfig2,
1096
+ 'method': valueFromConfig2,
1097
+ 'data': valueFromConfig2,
1098
+ 'baseURL': defaultToConfig2,
1099
+ 'transformRequest': defaultToConfig2,
1100
+ 'transformResponse': defaultToConfig2,
1101
+ 'paramsSerializer': defaultToConfig2,
1102
+ 'timeout': defaultToConfig2,
1103
+ 'timeoutMessage': defaultToConfig2,
1104
+ 'withCredentials': defaultToConfig2,
1105
+ 'adapter': defaultToConfig2,
1106
+ 'responseType': defaultToConfig2,
1107
+ 'xsrfCookieName': defaultToConfig2,
1108
+ 'xsrfHeaderName': defaultToConfig2,
1109
+ 'onUploadProgress': defaultToConfig2,
1110
+ 'onDownloadProgress': defaultToConfig2,
1111
+ 'decompress': defaultToConfig2,
1112
+ 'maxContentLength': defaultToConfig2,
1113
+ 'maxBodyLength': defaultToConfig2,
1114
+ 'transport': defaultToConfig2,
1115
+ 'httpAgent': defaultToConfig2,
1116
+ 'httpsAgent': defaultToConfig2,
1117
+ 'cancelToken': defaultToConfig2,
1118
+ 'socketPath': defaultToConfig2,
1119
+ 'responseEncoding': defaultToConfig2,
1120
+ 'validateStatus': mergeDirectKeys
1121
+ };
1122
+
1123
+ utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {
1124
+ var merge = mergeMap[prop] || mergeDeepProperties;
1125
+ var configValue = merge(prop);
1126
+ (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);
1127
+ });
1128
+
1129
+ return config;
1130
+ };
1131
+
1132
+
1133
+ /***/ }),
1134
+
1135
+ /***/ "./lib/core/settle.js":
1136
+ /*!****************************!*\
1137
+ !*** ./lib/core/settle.js ***!
1138
+ \****************************/
1139
+ /*! no static exports found */
1140
+ /***/ (function(module, exports, __webpack_require__) {
1141
+
1142
+ "use strict";
1143
+
1144
+
1145
+ var createError = __webpack_require__(/*! ./createError */ "./lib/core/createError.js");
1146
+
1147
+ /**
1148
+ * Resolve or reject a Promise based on response status.
1149
+ *
1150
+ * @param {Function} resolve A function that resolves the promise.
1151
+ * @param {Function} reject A function that rejects the promise.
1152
+ * @param {object} response The response.
1153
+ */
1154
+ module.exports = function settle(resolve, reject, response) {
1155
+ var validateStatus = response.config.validateStatus;
1156
+ if (!response.status || !validateStatus || validateStatus(response.status)) {
1157
+ resolve(response);
1158
+ } else {
1159
+ reject(createError(
1160
+ 'Request failed with status code ' + response.status,
1161
+ response.config,
1162
+ null,
1163
+ response.request,
1164
+ response
1165
+ ));
1166
+ }
1167
+ };
1168
+
1169
+
1170
+ /***/ }),
1171
+
1172
+ /***/ "./lib/core/transformData.js":
1173
+ /*!***********************************!*\
1174
+ !*** ./lib/core/transformData.js ***!
1175
+ \***********************************/
1176
+ /*! no static exports found */
1177
+ /***/ (function(module, exports, __webpack_require__) {
1178
+
1179
+ "use strict";
1180
+
1181
+
1182
+ var utils = __webpack_require__(/*! ./../utils */ "./lib/utils.js");
1183
+ var defaults = __webpack_require__(/*! ../defaults */ "./lib/defaults/index.js");
1184
+
1185
+ /**
1186
+ * Transform the data for a request or a response
1187
+ *
1188
+ * @param {Object|String} data The data to be transformed
1189
+ * @param {Array} headers The headers for the request or response
1190
+ * @param {Array|Function} fns A single function or Array of functions
1191
+ * @returns {*} The resulting transformed data
1192
+ */
1193
+ module.exports = function transformData(data, headers, fns) {
1194
+ var context = this || defaults;
1195
+ /*eslint no-param-reassign:0*/
1196
+ utils.forEach(fns, function transform(fn) {
1197
+ data = fn.call(context, data, headers);
1198
+ });
1199
+
1200
+ return data;
1201
+ };
1202
+
1203
+
1204
+ /***/ }),
1205
+
1206
+ /***/ "./lib/defaults/index.js":
1207
+ /*!*******************************!*\
1208
+ !*** ./lib/defaults/index.js ***!
1209
+ \*******************************/
1210
+ /*! no static exports found */
1211
+ /***/ (function(module, exports, __webpack_require__) {
1212
+
1213
+ "use strict";
1214
+
1215
+
1216
+ var utils = __webpack_require__(/*! ../utils */ "./lib/utils.js");
1217
+ var normalizeHeaderName = __webpack_require__(/*! ../helpers/normalizeHeaderName */ "./lib/helpers/normalizeHeaderName.js");
1218
+ var enhanceError = __webpack_require__(/*! ../core/enhanceError */ "./lib/core/enhanceError.js");
1219
+ var transitionalDefaults = __webpack_require__(/*! ./transitional */ "./lib/defaults/transitional.js");
1220
+
1221
+ var DEFAULT_CONTENT_TYPE = {
1222
+ 'Content-Type': 'application/x-www-form-urlencoded'
1223
+ };
1224
+
1225
+ function setContentTypeIfUnset(headers, value) {
1226
+ if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {
1227
+ headers['Content-Type'] = value;
1228
+ }
1229
+ }
1230
+
1231
+ function getDefaultAdapter() {
1232
+ var adapter;
1233
+ if (typeof XMLHttpRequest !== 'undefined') {
1234
+ // For browsers use XHR adapter
1235
+ adapter = __webpack_require__(/*! ../adapters/xhr */ "./lib/adapters/xhr.js");
1236
+ } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {
1237
+ // For node use HTTP adapter
1238
+ adapter = __webpack_require__(/*! ../adapters/http */ "./lib/adapters/xhr.js");
1239
+ }
1240
+ return adapter;
1241
+ }
1242
+
1243
+ function stringifySafely(rawValue, parser, encoder) {
1244
+ if (utils.isString(rawValue)) {
1245
+ try {
1246
+ (parser || JSON.parse)(rawValue);
1247
+ return utils.trim(rawValue);
1248
+ } catch (e) {
1249
+ if (e.name !== 'SyntaxError') {
1250
+ throw e;
1251
+ }
1252
+ }
1253
+ }
1254
+
1255
+ return (encoder || JSON.stringify)(rawValue);
1256
+ }
1257
+
1258
+ var defaults = {
1259
+
1260
+ transitional: transitionalDefaults,
1261
+
1262
+ adapter: getDefaultAdapter(),
1263
+
1264
+ transformRequest: [function transformRequest(data, headers) {
1265
+ normalizeHeaderName(headers, 'Accept');
1266
+ normalizeHeaderName(headers, 'Content-Type');
1267
+
1268
+ if (utils.isFormData(data) ||
1269
+ utils.isArrayBuffer(data) ||
1270
+ utils.isBuffer(data) ||
1271
+ utils.isStream(data) ||
1272
+ utils.isFile(data) ||
1273
+ utils.isBlob(data)
1274
+ ) {
1275
+ return data;
1276
+ }
1277
+ if (utils.isArrayBufferView(data)) {
1278
+ return data.buffer;
1279
+ }
1280
+ if (utils.isURLSearchParams(data)) {
1281
+ setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');
1282
+ return data.toString();
1283
+ }
1284
+ if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {
1285
+ setContentTypeIfUnset(headers, 'application/json');
1286
+ return stringifySafely(data);
1287
+ }
1288
+ return data;
1289
+ }],
1290
+
1291
+ transformResponse: [function transformResponse(data) {
1292
+ var transitional = this.transitional || defaults.transitional;
1293
+ var silentJSONParsing = transitional && transitional.silentJSONParsing;
1294
+ var forcedJSONParsing = transitional && transitional.forcedJSONParsing;
1295
+ var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';
1296
+
1297
+ if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {
1298
+ try {
1299
+ return JSON.parse(data);
1300
+ } catch (e) {
1301
+ if (strictJSONParsing) {
1302
+ if (e.name === 'SyntaxError') {
1303
+ throw enhanceError(e, this, 'E_JSON_PARSE');
1304
+ }
1305
+ throw e;
1306
+ }
1307
+ }
1308
+ }
1309
+
1310
+ return data;
1311
+ }],
1312
+
1313
+ /**
1314
+ * A timeout in milliseconds to abort a request. If set to 0 (default) a
1315
+ * timeout is not created.
1316
+ */
1317
+ timeout: 0,
1318
+
1319
+ xsrfCookieName: 'XSRF-TOKEN',
1320
+ xsrfHeaderName: 'X-XSRF-TOKEN',
1321
+
1322
+ maxContentLength: -1,
1323
+ maxBodyLength: -1,
1324
+
1325
+ validateStatus: function validateStatus(status) {
1326
+ return status >= 200 && status < 300;
1327
+ },
1328
+
1329
+ headers: {
1330
+ common: {
1331
+ 'Accept': 'application/json, text/plain, */*'
1332
+ }
1333
+ }
1334
+ };
1335
+
1336
+ utils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {
1337
+ defaults.headers[method] = {};
1338
+ });
1339
+
1340
+ utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {
1341
+ defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);
1342
+ });
1343
+
1344
+ module.exports = defaults;
1345
+
1346
+
1347
+ /***/ }),
1348
+
1349
+ /***/ "./lib/defaults/transitional.js":
1350
+ /*!**************************************!*\
1351
+ !*** ./lib/defaults/transitional.js ***!
1352
+ \**************************************/
1353
+ /*! no static exports found */
1354
+ /***/ (function(module, exports, __webpack_require__) {
1355
+
1356
+ "use strict";
1357
+
1358
+
1359
+ module.exports = {
1360
+ silentJSONParsing: true,
1361
+ forcedJSONParsing: true,
1362
+ clarifyTimeoutError: false
1363
+ };
1364
+
1365
+
1366
+ /***/ }),
1367
+
1368
+ /***/ "./lib/env/data.js":
1369
+ /*!*************************!*\
1370
+ !*** ./lib/env/data.js ***!
1371
+ \*************************/
1372
+ /*! no static exports found */
1373
+ /***/ (function(module, exports) {
1374
+
1375
+ module.exports = {
1376
+ "version": "0.26.1"
1377
+ };
1378
+
1379
+ /***/ }),
1380
+
1381
+ /***/ "./lib/helpers/bind.js":
1382
+ /*!*****************************!*\
1383
+ !*** ./lib/helpers/bind.js ***!
1384
+ \*****************************/
1385
+ /*! no static exports found */
1386
+ /***/ (function(module, exports, __webpack_require__) {
1387
+
1388
+ "use strict";
1389
+
1390
+
1391
+ module.exports = function bind(fn, thisArg) {
1392
+ return function wrap() {
1393
+ var args = new Array(arguments.length);
1394
+ for (var i = 0; i < args.length; i++) {
1395
+ args[i] = arguments[i];
1396
+ }
1397
+ return fn.apply(thisArg, args);
1398
+ };
1399
+ };
1400
+
1401
+
1402
+ /***/ }),
1403
+
1404
+ /***/ "./lib/helpers/buildURL.js":
1405
+ /*!*********************************!*\
1406
+ !*** ./lib/helpers/buildURL.js ***!
1407
+ \*********************************/
1408
+ /*! no static exports found */
1409
+ /***/ (function(module, exports, __webpack_require__) {
1410
+
1411
+ "use strict";
1412
+
1413
+
1414
+ var utils = __webpack_require__(/*! ./../utils */ "./lib/utils.js");
1415
+
1416
+ function encode(val) {
1417
+ return encodeURIComponent(val).
1418
+ replace(/%3A/gi, ':').
1419
+ replace(/%24/g, '$').
1420
+ replace(/%2C/gi, ',').
1421
+ replace(/%20/g, '+').
1422
+ replace(/%5B/gi, '[').
1423
+ replace(/%5D/gi, ']');
1424
+ }
1425
+
1426
+ /**
1427
+ * Build a URL by appending params to the end
1428
+ *
1429
+ * @param {string} url The base of the url (e.g., http://www.google.com)
1430
+ * @param {object} [params] The params to be appended
1431
+ * @returns {string} The formatted url
1432
+ */
1433
+ module.exports = function buildURL(url, params, paramsSerializer) {
1434
+ /*eslint no-param-reassign:0*/
1435
+ if (!params) {
1436
+ return url;
1437
+ }
1438
+
1439
+ var serializedParams;
1440
+ if (paramsSerializer) {
1441
+ serializedParams = paramsSerializer(params);
1442
+ } else if (utils.isURLSearchParams(params)) {
1443
+ serializedParams = params.toString();
1444
+ } else {
1445
+ var parts = [];
1446
+
1447
+ utils.forEach(params, function serialize(val, key) {
1448
+ if (val === null || typeof val === 'undefined') {
1449
+ return;
1450
+ }
1451
+
1452
+ if (utils.isArray(val)) {
1453
+ key = key + '[]';
1454
+ } else {
1455
+ val = [val];
1456
+ }
1457
+
1458
+ utils.forEach(val, function parseValue(v) {
1459
+ if (utils.isDate(v)) {
1460
+ v = v.toISOString();
1461
+ } else if (utils.isObject(v)) {
1462
+ v = JSON.stringify(v);
1463
+ }
1464
+ parts.push(encode(key) + '=' + encode(v));
1465
+ });
1466
+ });
1467
+
1468
+ serializedParams = parts.join('&');
1469
+ }
1470
+
1471
+ if (serializedParams) {
1472
+ var hashmarkIndex = url.indexOf('#');
1473
+ if (hashmarkIndex !== -1) {
1474
+ url = url.slice(0, hashmarkIndex);
1475
+ }
1476
+
1477
+ url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;
1478
+ }
1479
+
1480
+ return url;
1481
+ };
1482
+
1483
+
1484
+ /***/ }),
1485
+
1486
+ /***/ "./lib/helpers/combineURLs.js":
1487
+ /*!************************************!*\
1488
+ !*** ./lib/helpers/combineURLs.js ***!
1489
+ \************************************/
1490
+ /*! no static exports found */
1491
+ /***/ (function(module, exports, __webpack_require__) {
1492
+
1493
+ "use strict";
1494
+
1495
+
1496
+ /**
1497
+ * Creates a new URL by combining the specified URLs
1498
+ *
1499
+ * @param {string} baseURL The base URL
1500
+ * @param {string} relativeURL The relative URL
1501
+ * @returns {string} The combined URL
1502
+ */
1503
+ module.exports = function combineURLs(baseURL, relativeURL) {
1504
+ return relativeURL
1505
+ ? baseURL.replace(/\/+$/, '') + '/' + relativeURL.replace(/^\/+/, '')
1506
+ : baseURL;
1507
+ };
1508
+
1509
+
1510
+ /***/ }),
1511
+
1512
+ /***/ "./lib/helpers/cookies.js":
1513
+ /*!********************************!*\
1514
+ !*** ./lib/helpers/cookies.js ***!
1515
+ \********************************/
1516
+ /*! no static exports found */
1517
+ /***/ (function(module, exports, __webpack_require__) {
1518
+
1519
+ "use strict";
1520
+
1521
+
1522
+ var utils = __webpack_require__(/*! ./../utils */ "./lib/utils.js");
1523
+
1524
+ module.exports = (
1525
+ utils.isStandardBrowserEnv() ?
1526
+
1527
+ // Standard browser envs support document.cookie
1528
+ (function standardBrowserEnv() {
1529
+ return {
1530
+ write: function write(name, value, expires, path, domain, secure) {
1531
+ var cookie = [];
1532
+ cookie.push(name + '=' + encodeURIComponent(value));
1533
+
1534
+ if (utils.isNumber(expires)) {
1535
+ cookie.push('expires=' + new Date(expires).toGMTString());
1536
+ }
1537
+
1538
+ if (utils.isString(path)) {
1539
+ cookie.push('path=' + path);
1540
+ }
1541
+
1542
+ if (utils.isString(domain)) {
1543
+ cookie.push('domain=' + domain);
1544
+ }
1545
+
1546
+ if (secure === true) {
1547
+ cookie.push('secure');
1548
+ }
1549
+
1550
+ document.cookie = cookie.join('; ');
1551
+ },
1552
+
1553
+ read: function read(name) {
1554
+ var match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)'));
1555
+ return (match ? decodeURIComponent(match[3]) : null);
1556
+ },
1557
+
1558
+ remove: function remove(name) {
1559
+ this.write(name, '', Date.now() - 86400000);
1560
+ }
1561
+ };
1562
+ })() :
1563
+
1564
+ // Non standard browser env (web workers, react-native) lack needed support.
1565
+ (function nonStandardBrowserEnv() {
1566
+ return {
1567
+ write: function write() {},
1568
+ read: function read() { return null; },
1569
+ remove: function remove() {}
1570
+ };
1571
+ })()
1572
+ );
1573
+
1574
+
1575
+ /***/ }),
1576
+
1577
+ /***/ "./lib/helpers/isAbsoluteURL.js":
1578
+ /*!**************************************!*\
1579
+ !*** ./lib/helpers/isAbsoluteURL.js ***!
1580
+ \**************************************/
1581
+ /*! no static exports found */
1582
+ /***/ (function(module, exports, __webpack_require__) {
1583
+
1584
+ "use strict";
1585
+
1586
+
1587
+ /**
1588
+ * Determines whether the specified URL is absolute
1589
+ *
1590
+ * @param {string} url The URL to test
1591
+ * @returns {boolean} True if the specified URL is absolute, otherwise false
1592
+ */
1593
+ module.exports = function isAbsoluteURL(url) {
1594
+ // A URL is considered absolute if it begins with "<scheme>://" or "//" (protocol-relative URL).
1595
+ // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed
1596
+ // by any combination of letters, digits, plus, period, or hyphen.
1597
+ return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url);
1598
+ };
1599
+
1600
+
1601
+ /***/ }),
1602
+
1603
+ /***/ "./lib/helpers/isAxiosError.js":
1604
+ /*!*************************************!*\
1605
+ !*** ./lib/helpers/isAxiosError.js ***!
1606
+ \*************************************/
1607
+ /*! no static exports found */
1608
+ /***/ (function(module, exports, __webpack_require__) {
1609
+
1610
+ "use strict";
1611
+
1612
+
1613
+ var utils = __webpack_require__(/*! ./../utils */ "./lib/utils.js");
1614
+
1615
+ /**
1616
+ * Determines whether the payload is an error thrown by Axios
1617
+ *
1618
+ * @param {*} payload The value to test
1619
+ * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false
1620
+ */
1621
+ module.exports = function isAxiosError(payload) {
1622
+ return utils.isObject(payload) && (payload.isAxiosError === true);
1623
+ };
1624
+
1625
+
1626
+ /***/ }),
1627
+
1628
+ /***/ "./lib/helpers/isURLSameOrigin.js":
1629
+ /*!****************************************!*\
1630
+ !*** ./lib/helpers/isURLSameOrigin.js ***!
1631
+ \****************************************/
1632
+ /*! no static exports found */
1633
+ /***/ (function(module, exports, __webpack_require__) {
1634
+
1635
+ "use strict";
1636
+
1637
+
1638
+ var utils = __webpack_require__(/*! ./../utils */ "./lib/utils.js");
1639
+
1640
+ module.exports = (
1641
+ utils.isStandardBrowserEnv() ?
1642
+
1643
+ // Standard browser envs have full support of the APIs needed to test
1644
+ // whether the request URL is of the same origin as current location.
1645
+ (function standardBrowserEnv() {
1646
+ var msie = /(msie|trident)/i.test(navigator.userAgent);
1647
+ var urlParsingNode = document.createElement('a');
1648
+ var originURL;
1649
+
1650
+ /**
1651
+ * Parse a URL to discover it's components
1652
+ *
1653
+ * @param {String} url The URL to be parsed
1654
+ * @returns {Object}
1655
+ */
1656
+ function resolveURL(url) {
1657
+ var href = url;
1658
+
1659
+ if (msie) {
1660
+ // IE needs attribute set twice to normalize properties
1661
+ urlParsingNode.setAttribute('href', href);
1662
+ href = urlParsingNode.href;
1663
+ }
1664
+
1665
+ urlParsingNode.setAttribute('href', href);
1666
+
1667
+ // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils
1668
+ return {
1669
+ href: urlParsingNode.href,
1670
+ protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',
1671
+ host: urlParsingNode.host,
1672
+ search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, '') : '',
1673
+ hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',
1674
+ hostname: urlParsingNode.hostname,
1675
+ port: urlParsingNode.port,
1676
+ pathname: (urlParsingNode.pathname.charAt(0) === '/') ?
1677
+ urlParsingNode.pathname :
1678
+ '/' + urlParsingNode.pathname
1679
+ };
1680
+ }
1681
+
1682
+ originURL = resolveURL(window.location.href);
1683
+
1684
+ /**
1685
+ * Determine if a URL shares the same origin as the current location
1686
+ *
1687
+ * @param {String} requestURL The URL to test
1688
+ * @returns {boolean} True if URL shares the same origin, otherwise false
1689
+ */
1690
+ return function isURLSameOrigin(requestURL) {
1691
+ var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;
1692
+ return (parsed.protocol === originURL.protocol &&
1693
+ parsed.host === originURL.host);
1694
+ };
1695
+ })() :
1696
+
1697
+ // Non standard browser envs (web workers, react-native) lack needed support.
1698
+ (function nonStandardBrowserEnv() {
1699
+ return function isURLSameOrigin() {
1700
+ return true;
1701
+ };
1702
+ })()
1703
+ );
1704
+
1705
+
1706
+ /***/ }),
1707
+
1708
+ /***/ "./lib/helpers/normalizeHeaderName.js":
1709
+ /*!********************************************!*\
1710
+ !*** ./lib/helpers/normalizeHeaderName.js ***!
1711
+ \********************************************/
1712
+ /*! no static exports found */
1713
+ /***/ (function(module, exports, __webpack_require__) {
1714
+
1715
+ "use strict";
1716
+
1717
+
1718
+ var utils = __webpack_require__(/*! ../utils */ "./lib/utils.js");
1719
+
1720
+ module.exports = function normalizeHeaderName(headers, normalizedName) {
1721
+ utils.forEach(headers, function processHeader(value, name) {
1722
+ if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {
1723
+ headers[normalizedName] = value;
1724
+ delete headers[name];
1725
+ }
1726
+ });
1727
+ };
1728
+
1729
+
1730
+ /***/ }),
1731
+
1732
+ /***/ "./lib/helpers/parseHeaders.js":
1733
+ /*!*************************************!*\
1734
+ !*** ./lib/helpers/parseHeaders.js ***!
1735
+ \*************************************/
1736
+ /*! no static exports found */
1737
+ /***/ (function(module, exports, __webpack_require__) {
1738
+
1739
+ "use strict";
1740
+
1741
+
1742
+ var utils = __webpack_require__(/*! ./../utils */ "./lib/utils.js");
1743
+
1744
+ // Headers whose duplicates are ignored by node
1745
+ // c.f. https://nodejs.org/api/http.html#http_message_headers
1746
+ var ignoreDuplicateOf = [
1747
+ 'age', 'authorization', 'content-length', 'content-type', 'etag',
1748
+ 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',
1749
+ 'last-modified', 'location', 'max-forwards', 'proxy-authorization',
1750
+ 'referer', 'retry-after', 'user-agent'
1751
+ ];
1752
+
1753
+ /**
1754
+ * Parse headers into an object
1755
+ *
1756
+ * ```
1757
+ * Date: Wed, 27 Aug 2014 08:58:49 GMT
1758
+ * Content-Type: application/json
1759
+ * Connection: keep-alive
1760
+ * Transfer-Encoding: chunked
1761
+ * ```
1762
+ *
1763
+ * @param {String} headers Headers needing to be parsed
1764
+ * @returns {Object} Headers parsed into an object
1765
+ */
1766
+ module.exports = function parseHeaders(headers) {
1767
+ var parsed = {};
1768
+ var key;
1769
+ var val;
1770
+ var i;
1771
+
1772
+ if (!headers) { return parsed; }
1773
+
1774
+ utils.forEach(headers.split('\n'), function parser(line) {
1775
+ i = line.indexOf(':');
1776
+ key = utils.trim(line.substr(0, i)).toLowerCase();
1777
+ val = utils.trim(line.substr(i + 1));
1778
+
1779
+ if (key) {
1780
+ if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {
1781
+ return;
1782
+ }
1783
+ if (key === 'set-cookie') {
1784
+ parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);
1785
+ } else {
1786
+ parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;
1787
+ }
1788
+ }
1789
+ });
1790
+
1791
+ return parsed;
1792
+ };
1793
+
1794
+
1795
+ /***/ }),
1796
+
1797
+ /***/ "./lib/helpers/spread.js":
1798
+ /*!*******************************!*\
1799
+ !*** ./lib/helpers/spread.js ***!
1800
+ \*******************************/
1801
+ /*! no static exports found */
1802
+ /***/ (function(module, exports, __webpack_require__) {
1803
+
1804
+ "use strict";
1805
+
1806
+
1807
+ /**
1808
+ * Syntactic sugar for invoking a function and expanding an array for arguments.
1809
+ *
1810
+ * Common use case would be to use `Function.prototype.apply`.
1811
+ *
1812
+ * ```js
1813
+ * function f(x, y, z) {}
1814
+ * var args = [1, 2, 3];
1815
+ * f.apply(null, args);
1816
+ * ```
1817
+ *
1818
+ * With `spread` this example can be re-written.
1819
+ *
1820
+ * ```js
1821
+ * spread(function(x, y, z) {})([1, 2, 3]);
1822
+ * ```
1823
+ *
1824
+ * @param {Function} callback
1825
+ * @returns {Function}
1826
+ */
1827
+ module.exports = function spread(callback) {
1828
+ return function wrap(arr) {
1829
+ return callback.apply(null, arr);
1830
+ };
1831
+ };
1832
+
1833
+
1834
+ /***/ }),
1835
+
1836
+ /***/ "./lib/helpers/validator.js":
1837
+ /*!**********************************!*\
1838
+ !*** ./lib/helpers/validator.js ***!
1839
+ \**********************************/
1840
+ /*! no static exports found */
1841
+ /***/ (function(module, exports, __webpack_require__) {
1842
+
1843
+ "use strict";
1844
+
1845
+
1846
+ var VERSION = __webpack_require__(/*! ../env/data */ "./lib/env/data.js").version;
1847
+
1848
+ var validators = {};
1849
+
1850
+ // eslint-disable-next-line func-names
1851
+ ['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {
1852
+ validators[type] = function validator(thing) {
1853
+ return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;
1854
+ };
1855
+ });
1856
+
1857
+ var deprecatedWarnings = {};
1858
+
1859
+ /**
1860
+ * Transitional option validator
1861
+ * @param {function|boolean?} validator - set to false if the transitional option has been removed
1862
+ * @param {string?} version - deprecated version / removed since version
1863
+ * @param {string?} message - some message with additional info
1864
+ * @returns {function}
1865
+ */
1866
+ validators.transitional = function transitional(validator, version, message) {
1867
+ function formatMessage(opt, desc) {
1868
+ return '[Axios v' + VERSION + '] Transitional option \'' + opt + '\'' + desc + (message ? '. ' + message : '');
1869
+ }
1870
+
1871
+ // eslint-disable-next-line func-names
1872
+ return function(value, opt, opts) {
1873
+ if (validator === false) {
1874
+ throw new Error(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')));
1875
+ }
1876
+
1877
+ if (version && !deprecatedWarnings[opt]) {
1878
+ deprecatedWarnings[opt] = true;
1879
+ // eslint-disable-next-line no-console
1880
+ console.warn(
1881
+ formatMessage(
1882
+ opt,
1883
+ ' has been deprecated since v' + version + ' and will be removed in the near future'
1884
+ )
1885
+ );
1886
+ }
1887
+
1888
+ return validator ? validator(value, opt, opts) : true;
1889
+ };
1890
+ };
1891
+
1892
+ /**
1893
+ * Assert object's properties type
1894
+ * @param {object} options
1895
+ * @param {object} schema
1896
+ * @param {boolean?} allowUnknown
1897
+ */
1898
+
1899
+ function assertOptions(options, schema, allowUnknown) {
1900
+ if (typeof options !== 'object') {
1901
+ throw new TypeError('options must be an object');
1902
+ }
1903
+ var keys = Object.keys(options);
1904
+ var i = keys.length;
1905
+ while (i-- > 0) {
1906
+ var opt = keys[i];
1907
+ var validator = schema[opt];
1908
+ if (validator) {
1909
+ var value = options[opt];
1910
+ var result = value === undefined || validator(value, opt, options);
1911
+ if (result !== true) {
1912
+ throw new TypeError('option ' + opt + ' must be ' + result);
1913
+ }
1914
+ continue;
1915
+ }
1916
+ if (allowUnknown !== true) {
1917
+ throw Error('Unknown option ' + opt);
1918
+ }
1919
+ }
1920
+ }
1921
+
1922
+ module.exports = {
1923
+ assertOptions: assertOptions,
1924
+ validators: validators
1925
+ };
1926
+
1927
+
1928
+ /***/ }),
1929
+
1930
+ /***/ "./lib/utils.js":
1931
+ /*!**********************!*\
1932
+ !*** ./lib/utils.js ***!
1933
+ \**********************/
1934
+ /*! no static exports found */
1935
+ /***/ (function(module, exports, __webpack_require__) {
1936
+
1937
+ "use strict";
1938
+
1939
+
1940
+ var bind = __webpack_require__(/*! ./helpers/bind */ "./lib/helpers/bind.js");
1941
+
1942
+ // utils is a library of generic helper functions non-specific to axios
1943
+
1944
+ var toString = Object.prototype.toString;
1945
+
1946
+ /**
1947
+ * Determine if a value is an Array
1948
+ *
1949
+ * @param {Object} val The value to test
1950
+ * @returns {boolean} True if value is an Array, otherwise false
1951
+ */
1952
+ function isArray(val) {
1953
+ return Array.isArray(val);
1954
+ }
1955
+
1956
+ /**
1957
+ * Determine if a value is undefined
1958
+ *
1959
+ * @param {Object} val The value to test
1960
+ * @returns {boolean} True if the value is undefined, otherwise false
1961
+ */
1962
+ function isUndefined(val) {
1963
+ return typeof val === 'undefined';
1964
+ }
1965
+
1966
+ /**
1967
+ * Determine if a value is a Buffer
1968
+ *
1969
+ * @param {Object} val The value to test
1970
+ * @returns {boolean} True if value is a Buffer, otherwise false
1971
+ */
1972
+ function isBuffer(val) {
1973
+ return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)
1974
+ && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);
1975
+ }
1976
+
1977
+ /**
1978
+ * Determine if a value is an ArrayBuffer
1979
+ *
1980
+ * @param {Object} val The value to test
1981
+ * @returns {boolean} True if value is an ArrayBuffer, otherwise false
1982
+ */
1983
+ function isArrayBuffer(val) {
1984
+ return toString.call(val) === '[object ArrayBuffer]';
1985
+ }
1986
+
1987
+ /**
1988
+ * Determine if a value is a FormData
1989
+ *
1990
+ * @param {Object} val The value to test
1991
+ * @returns {boolean} True if value is an FormData, otherwise false
1992
+ */
1993
+ function isFormData(val) {
1994
+ return toString.call(val) === '[object FormData]';
1995
+ }
1996
+
1997
+ /**
1998
+ * Determine if a value is a view on an ArrayBuffer
1999
+ *
2000
+ * @param {Object} val The value to test
2001
+ * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false
2002
+ */
2003
+ function isArrayBufferView(val) {
2004
+ var result;
2005
+ if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {
2006
+ result = ArrayBuffer.isView(val);
2007
+ } else {
2008
+ result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));
2009
+ }
2010
+ return result;
2011
+ }
2012
+
2013
+ /**
2014
+ * Determine if a value is a String
2015
+ *
2016
+ * @param {Object} val The value to test
2017
+ * @returns {boolean} True if value is a String, otherwise false
2018
+ */
2019
+ function isString(val) {
2020
+ return typeof val === 'string';
2021
+ }
2022
+
2023
+ /**
2024
+ * Determine if a value is a Number
2025
+ *
2026
+ * @param {Object} val The value to test
2027
+ * @returns {boolean} True if value is a Number, otherwise false
2028
+ */
2029
+ function isNumber(val) {
2030
+ return typeof val === 'number';
2031
+ }
2032
+
2033
+ /**
2034
+ * Determine if a value is an Object
2035
+ *
2036
+ * @param {Object} val The value to test
2037
+ * @returns {boolean} True if value is an Object, otherwise false
2038
+ */
2039
+ function isObject(val) {
2040
+ return val !== null && typeof val === 'object';
2041
+ }
2042
+
2043
+ /**
2044
+ * Determine if a value is a plain Object
2045
+ *
2046
+ * @param {Object} val The value to test
2047
+ * @return {boolean} True if value is a plain Object, otherwise false
2048
+ */
2049
+ function isPlainObject(val) {
2050
+ if (toString.call(val) !== '[object Object]') {
2051
+ return false;
2052
+ }
2053
+
2054
+ var prototype = Object.getPrototypeOf(val);
2055
+ return prototype === null || prototype === Object.prototype;
2056
+ }
2057
+
2058
+ /**
2059
+ * Determine if a value is a Date
2060
+ *
2061
+ * @param {Object} val The value to test
2062
+ * @returns {boolean} True if value is a Date, otherwise false
2063
+ */
2064
+ function isDate(val) {
2065
+ return toString.call(val) === '[object Date]';
2066
+ }
2067
+
2068
+ /**
2069
+ * Determine if a value is a File
2070
+ *
2071
+ * @param {Object} val The value to test
2072
+ * @returns {boolean} True if value is a File, otherwise false
2073
+ */
2074
+ function isFile(val) {
2075
+ return toString.call(val) === '[object File]';
2076
+ }
2077
+
2078
+ /**
2079
+ * Determine if a value is a Blob
2080
+ *
2081
+ * @param {Object} val The value to test
2082
+ * @returns {boolean} True if value is a Blob, otherwise false
2083
+ */
2084
+ function isBlob(val) {
2085
+ return toString.call(val) === '[object Blob]';
2086
+ }
2087
+
2088
+ /**
2089
+ * Determine if a value is a Function
2090
+ *
2091
+ * @param {Object} val The value to test
2092
+ * @returns {boolean} True if value is a Function, otherwise false
2093
+ */
2094
+ function isFunction(val) {
2095
+ return toString.call(val) === '[object Function]';
2096
+ }
2097
+
2098
+ /**
2099
+ * Determine if a value is a Stream
2100
+ *
2101
+ * @param {Object} val The value to test
2102
+ * @returns {boolean} True if value is a Stream, otherwise false
2103
+ */
2104
+ function isStream(val) {
2105
+ return isObject(val) && isFunction(val.pipe);
2106
+ }
2107
+
2108
+ /**
2109
+ * Determine if a value is a URLSearchParams object
2110
+ *
2111
+ * @param {Object} val The value to test
2112
+ * @returns {boolean} True if value is a URLSearchParams object, otherwise false
2113
+ */
2114
+ function isURLSearchParams(val) {
2115
+ return toString.call(val) === '[object URLSearchParams]';
2116
+ }
2117
+
2118
+ /**
2119
+ * Trim excess whitespace off the beginning and end of a string
2120
+ *
2121
+ * @param {String} str The String to trim
2122
+ * @returns {String} The String freed of excess whitespace
2123
+ */
2124
+ function trim(str) {
2125
+ return str.trim ? str.trim() : str.replace(/^\s+|\s+$/g, '');
2126
+ }
2127
+
2128
+ /**
2129
+ * Determine if we're running in a standard browser environment
2130
+ *
2131
+ * This allows axios to run in a web worker, and react-native.
2132
+ * Both environments support XMLHttpRequest, but not fully standard globals.
2133
+ *
2134
+ * web workers:
2135
+ * typeof window -> undefined
2136
+ * typeof document -> undefined
2137
+ *
2138
+ * react-native:
2139
+ * navigator.product -> 'ReactNative'
2140
+ * nativescript
2141
+ * navigator.product -> 'NativeScript' or 'NS'
2142
+ */
2143
+ function isStandardBrowserEnv() {
2144
+ if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||
2145
+ navigator.product === 'NativeScript' ||
2146
+ navigator.product === 'NS')) {
2147
+ return false;
2148
+ }
2149
+ return (
2150
+ typeof window !== 'undefined' &&
2151
+ typeof document !== 'undefined'
2152
+ );
2153
+ }
2154
+
2155
+ /**
2156
+ * Iterate over an Array or an Object invoking a function for each item.
2157
+ *
2158
+ * If `obj` is an Array callback will be called passing
2159
+ * the value, index, and complete array for each item.
2160
+ *
2161
+ * If 'obj' is an Object callback will be called passing
2162
+ * the value, key, and complete object for each property.
2163
+ *
2164
+ * @param {Object|Array} obj The object to iterate
2165
+ * @param {Function} fn The callback to invoke for each item
2166
+ */
2167
+ function forEach(obj, fn) {
2168
+ // Don't bother if no value provided
2169
+ if (obj === null || typeof obj === 'undefined') {
2170
+ return;
2171
+ }
2172
+
2173
+ // Force an array if not already something iterable
2174
+ if (typeof obj !== 'object') {
2175
+ /*eslint no-param-reassign:0*/
2176
+ obj = [obj];
2177
+ }
2178
+
2179
+ if (isArray(obj)) {
2180
+ // Iterate over array values
2181
+ for (var i = 0, l = obj.length; i < l; i++) {
2182
+ fn.call(null, obj[i], i, obj);
2183
+ }
2184
+ } else {
2185
+ // Iterate over object keys
2186
+ for (var key in obj) {
2187
+ if (Object.prototype.hasOwnProperty.call(obj, key)) {
2188
+ fn.call(null, obj[key], key, obj);
2189
+ }
2190
+ }
2191
+ }
2192
+ }
2193
+
2194
+ /**
2195
+ * Accepts varargs expecting each argument to be an object, then
2196
+ * immutably merges the properties of each object and returns result.
2197
+ *
2198
+ * When multiple objects contain the same key the later object in
2199
+ * the arguments list will take precedence.
2200
+ *
2201
+ * Example:
2202
+ *
2203
+ * ```js
2204
+ * var result = merge({foo: 123}, {foo: 456});
2205
+ * console.log(result.foo); // outputs 456
2206
+ * ```
2207
+ *
2208
+ * @param {Object} obj1 Object to merge
2209
+ * @returns {Object} Result of all merge properties
2210
+ */
2211
+ function merge(/* obj1, obj2, obj3, ... */) {
2212
+ var result = {};
2213
+ function assignValue(val, key) {
2214
+ if (isPlainObject(result[key]) && isPlainObject(val)) {
2215
+ result[key] = merge(result[key], val);
2216
+ } else if (isPlainObject(val)) {
2217
+ result[key] = merge({}, val);
2218
+ } else if (isArray(val)) {
2219
+ result[key] = val.slice();
2220
+ } else {
2221
+ result[key] = val;
2222
+ }
2223
+ }
2224
+
2225
+ for (var i = 0, l = arguments.length; i < l; i++) {
2226
+ forEach(arguments[i], assignValue);
2227
+ }
2228
+ return result;
2229
+ }
2230
+
2231
+ /**
2232
+ * Extends object a by mutably adding to it the properties of object b.
2233
+ *
2234
+ * @param {Object} a The object to be extended
2235
+ * @param {Object} b The object to copy properties from
2236
+ * @param {Object} thisArg The object to bind function to
2237
+ * @return {Object} The resulting value of object a
2238
+ */
2239
+ function extend(a, b, thisArg) {
2240
+ forEach(b, function assignValue(val, key) {
2241
+ if (thisArg && typeof val === 'function') {
2242
+ a[key] = bind(val, thisArg);
2243
+ } else {
2244
+ a[key] = val;
2245
+ }
2246
+ });
2247
+ return a;
2248
+ }
2249
+
2250
+ /**
2251
+ * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)
2252
+ *
2253
+ * @param {string} content with BOM
2254
+ * @return {string} content value without BOM
2255
+ */
2256
+ function stripBOM(content) {
2257
+ if (content.charCodeAt(0) === 0xFEFF) {
2258
+ content = content.slice(1);
2259
+ }
2260
+ return content;
2261
+ }
2262
+
2263
+ module.exports = {
2264
+ isArray: isArray,
2265
+ isArrayBuffer: isArrayBuffer,
2266
+ isBuffer: isBuffer,
2267
+ isFormData: isFormData,
2268
+ isArrayBufferView: isArrayBufferView,
2269
+ isString: isString,
2270
+ isNumber: isNumber,
2271
+ isObject: isObject,
2272
+ isPlainObject: isPlainObject,
2273
+ isUndefined: isUndefined,
2274
+ isDate: isDate,
2275
+ isFile: isFile,
2276
+ isBlob: isBlob,
2277
+ isFunction: isFunction,
2278
+ isStream: isStream,
2279
+ isURLSearchParams: isURLSearchParams,
2280
+ isStandardBrowserEnv: isStandardBrowserEnv,
2281
+ forEach: forEach,
2282
+ merge: merge,
2283
+ extend: extend,
2284
+ trim: trim,
2285
+ stripBOM: stripBOM
2286
+ };
2287
+
2288
+
2289
+ /***/ })
2290
+
2291
+ /******/ });
2292
+ });
2293
+ //# sourceMappingURL=axios.map
node_modules/axios/dist/axios.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"sources":["webpack://axios/webpack/universalModuleDefinition","webpack://axios/webpack/bootstrap","webpack://axios/./index.js","webpack://axios/./lib/adapters/xhr.js","webpack://axios/./lib/axios.js","webpack://axios/./lib/cancel/Cancel.js","webpack://axios/./lib/cancel/CancelToken.js","webpack://axios/./lib/cancel/isCancel.js","webpack://axios/./lib/core/Axios.js","webpack://axios/./lib/core/InterceptorManager.js","webpack://axios/./lib/core/buildFullPath.js","webpack://axios/./lib/core/createError.js","webpack://axios/./lib/core/dispatchRequest.js","webpack://axios/./lib/core/enhanceError.js","webpack://axios/./lib/core/mergeConfig.js","webpack://axios/./lib/core/settle.js","webpack://axios/./lib/core/transformData.js","webpack://axios/./lib/defaults/index.js","webpack://axios/./lib/defaults/transitional.js","webpack://axios/./lib/env/data.js","webpack://axios/./lib/helpers/bind.js","webpack://axios/./lib/helpers/buildURL.js","webpack://axios/./lib/helpers/combineURLs.js","webpack://axios/./lib/helpers/cookies.js","webpack://axios/./lib/helpers/isAbsoluteURL.js","webpack://axios/./lib/helpers/isAxiosError.js","webpack://axios/./lib/helpers/isURLSameOrigin.js","webpack://axios/./lib/helpers/normalizeHeaderName.js","webpack://axios/./lib/helpers/parseHeaders.js","webpack://axios/./lib/helpers/spread.js","webpack://axios/./lib/helpers/validator.js","webpack://axios/./lib/utils.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;QCVA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;;;;;;AClFA,iBAAiB,mBAAO,CAAC,mCAAa,E;;;;;;;;;;;;ACAzB;;AAEb,YAAY,mBAAO,CAAC,kCAAY;AAChC,aAAa,mBAAO,CAAC,8CAAkB;AACvC,cAAc,mBAAO,CAAC,sDAAsB;AAC5C,eAAe,mBAAO,CAAC,wDAAuB;AAC9C,oBAAoB,mBAAO,CAAC,0DAAuB;AACnD,mBAAmB,mBAAO,CAAC,gEAA2B;AACtD,sBAAsB,mBAAO,CAAC,sEAA8B;AAC5D,kBAAkB,mBAAO,CAAC,sDAAqB;AAC/C,2BAA2B,mBAAO,CAAC,gEAA0B;AAC7D,aAAa,mBAAO,CAAC,gDAAkB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,4CAA4C;AAC5C;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;;AAEP;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;ACnNa;;AAEb,YAAY,mBAAO,CAAC,+BAAS;AAC7B,WAAW,mBAAO,CAAC,6CAAgB;AACnC,YAAY,mBAAO,CAAC,yCAAc;AAClC,kBAAkB,mBAAO,CAAC,qDAAoB;AAC9C,eAAe,mBAAO,CAAC,2CAAY;;AAEnC;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,MAAM;AAClB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,eAAe,mBAAO,CAAC,+CAAiB;AACxC,oBAAoB,mBAAO,CAAC,yDAAsB;AAClD,iBAAiB,mBAAO,CAAC,mDAAmB;AAC5C,gBAAgB,mBAAO,CAAC,qCAAY;;AAEpC;AACA;AACA;AACA;AACA,eAAe,mBAAO,CAAC,iDAAkB;;AAEzC;AACA,qBAAqB,mBAAO,CAAC,6DAAwB;;AAErD;;AAEA;AACA;;;;;;;;;;;;;ACxDa;;AAEb;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;;;;;;;;;;;;AClBa;;AAEb,aAAa,mBAAO,CAAC,wCAAU;;AAE/B;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,eAAe,OAAO;AACtB;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;ACtHa;;AAEb;AACA;AACA;;;;;;;;;;;;;ACJa;;AAEb,YAAY,mBAAO,CAAC,kCAAY;AAChC,eAAe,mBAAO,CAAC,sDAAqB;AAC5C,yBAAyB,mBAAO,CAAC,8DAAsB;AACvD,sBAAsB,mBAAO,CAAC,wDAAmB;AACjD,kBAAkB,mBAAO,CAAC,gDAAe;AACzC,gBAAgB,mBAAO,CAAC,wDAAsB;;AAE9C;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA,yBAAyB;AACzB,KAAK;AACL;AACA,CAAC;;AAED;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;;AAED;;;;;;;;;;;;;ACnJa;;AAEb,YAAY,mBAAO,CAAC,kCAAY;;AAEhC;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;;;;;;ACrDa;;AAEb,oBAAoB,mBAAO,CAAC,gEAA0B;AACtD,kBAAkB,mBAAO,CAAC,4DAAwB;;AAElD;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACnBa;;AAEb,mBAAmB,mBAAO,CAAC,kDAAgB;;AAE3C;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACjBa;;AAEb,YAAY,mBAAO,CAAC,kCAAY;AAChC,oBAAoB,mBAAO,CAAC,oDAAiB;AAC7C,eAAe,mBAAO,CAAC,oDAAoB;AAC3C,eAAe,mBAAO,CAAC,4CAAa;AACpC,aAAa,mBAAO,CAAC,gDAAkB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+BAA+B;AAC/B,uCAAuC;AACvC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;;;;;;;;;;;;ACtFa;;AAEb;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC1Ca;;AAEb,YAAY,mBAAO,CAAC,gCAAU;;AAE9B;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL,2BAA2B;AAC3B,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;;;;;;;;;;;;AClGa;;AAEb,kBAAkB,mBAAO,CAAC,gDAAe;;AAEzC;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBa;;AAEb,YAAY,mBAAO,CAAC,kCAAY;AAChC,eAAe,mBAAO,CAAC,4CAAa;;AAEpC;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,MAAM;AACjB,WAAW,eAAe;AAC1B,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;;;;;;;;;;;;ACrBa;;AAEb,YAAY,mBAAO,CAAC,gCAAU;AAC9B,0BAA0B,mBAAO,CAAC,4EAAgC;AAClE,mBAAmB,mBAAO,CAAC,wDAAsB;AACjD,2BAA2B,mBAAO,CAAC,sDAAgB;;AAEnD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,mBAAO,CAAC,8CAAiB;AACvC,GAAG;AACH;AACA,cAAc,mBAAO,CAAC,+CAAkB;AACxC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;;;;;;;;;;;;;AClIa;;AAEb;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACNA;AACA;AACA,E;;;;;;;;;;;;ACFa;;AAEb;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACVa;;AAEb,YAAY,mBAAO,CAAC,kCAAY;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;;;;;;ACrEa;;AAEb;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACba;;AAEb,YAAY,mBAAO,CAAC,kCAAY;;AAEhC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,0CAA0C;AAC1C,SAAS;;AAET;AACA,4DAA4D,wBAAwB;AACpF;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,kCAAkC;AAClC,+BAA+B,aAAa,EAAE;AAC9C;AACA;AACA,KAAK;AACL;;;;;;;;;;;;;ACpDa;;AAEb;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACba;;AAEb,YAAY,mBAAO,CAAC,kCAAY;;AAEhC;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;;;;;;;;;;;;ACZa;;AAEb,YAAY,mBAAO,CAAC,kCAAY;;AAEhC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,gBAAgB;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;;;;;;;;;;;;ACnEa;;AAEb,YAAY,mBAAO,CAAC,gCAAU;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;ACXa;;AAEb,YAAY,mBAAO,CAAC,kCAAY;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,eAAe;;AAEhC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;;AAEH;AACA;;;;;;;;;;;;;ACpDa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,WAAW,SAAS;AACpB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC1Ba;;AAEb,cAAc,mBAAO,CAAC,sCAAa;;AAEnC;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA,WAAW,kBAAkB;AAC7B,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;ACjFa;;AAEb,WAAW,mBAAO,CAAC,6CAAgB;;AAEnC;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mCAAmC,OAAO;AAC1C;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS,GAAG,SAAS;AAC5C,2BAA2B;AAC3B;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,4BAA4B;AAC5B,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;;AAEA,uCAAuC,OAAO;AAC9C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"axios.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"axios\"] = factory();\n\telse\n\t\troot[\"axios\"] = factory();\n})(this, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./index.js\");\n","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\nvar transitionalDefaults = require('../defaults/transitional');\nvar Cancel = require('../cancel/Cancel');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || (cancel && cancel.type) ? new Cancel('canceled') : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new Cancel('canceled');\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar normalizeHeaderName = require('../helpers/normalizeHeaderName');\nvar enhanceError = require('../core/enhanceError');\nvar transitionalDefaults = require('./transitional');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('../adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('../adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nmodule.exports = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","module.exports = {\n \"version\": \"0.26.1\"\n};","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar VERSION = require('../env/data').version;\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')));\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return Array.isArray(val);\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return toString.call(val) === '[object FormData]';\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return toString.call(val) === '[object URLSearchParams]';\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n"],"sourceRoot":""}
node_modules/axios/dist/axios.min.js ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.axios=t():e.axios=t()}(this,(function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=12)}([function(e,t,n){"use strict";var r=n(3),o=Object.prototype.toString;function i(e){return Array.isArray(e)}function s(e){return void 0===e}function a(e){return"[object ArrayBuffer]"===o.call(e)}function u(e){return null!==e&&"object"==typeof e}function c(e){if("[object Object]"!==o.call(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function f(e){return"[object Function]"===o.call(e)}function l(e,t){if(null!=e)if("object"!=typeof e&&(e=[e]),i(e))for(var n=0,r=e.length;n<r;n++)t.call(null,e[n],n,e);else for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.call(null,e[o],o,e)}e.exports={isArray:i,isArrayBuffer:a,isBuffer:function(e){return null!==e&&!s(e)&&null!==e.constructor&&!s(e.constructor)&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)},isFormData:function(e){return"[object FormData]"===o.call(e)},isArrayBufferView:function(e){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&a(e.buffer)},isString:function(e){return"string"==typeof e},isNumber:function(e){return"number"==typeof e},isObject:u,isPlainObject:c,isUndefined:s,isDate:function(e){return"[object Date]"===o.call(e)},isFile:function(e){return"[object File]"===o.call(e)},isBlob:function(e){return"[object Blob]"===o.call(e)},isFunction:f,isStream:function(e){return u(e)&&f(e.pipe)},isURLSearchParams:function(e){return"[object URLSearchParams]"===o.call(e)},isStandardBrowserEnv:function(){return("undefined"==typeof navigator||"ReactNative"!==navigator.product&&"NativeScript"!==navigator.product&&"NS"!==navigator.product)&&("undefined"!=typeof window&&"undefined"!=typeof document)},forEach:l,merge:function e(){var t={};function n(n,r){c(t[r])&&c(n)?t[r]=e(t[r],n):c(n)?t[r]=e({},n):i(n)?t[r]=n.slice():t[r]=n}for(var r=0,o=arguments.length;r<o;r++)l(arguments[r],n);return t},extend:function(e,t,n){return l(t,(function(t,o){e[o]=n&&"function"==typeof t?r(t,n):t})),e},trim:function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")},stripBOM:function(e){return 65279===e.charCodeAt(0)&&(e=e.slice(1)),e}}},function(e,t,n){"use strict";function r(e){this.message=e}r.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},r.prototype.__CANCEL__=!0,e.exports=r},function(e,t,n){"use strict";var r=n(0),o=n(18),i=n(5),s=n(6),a={"Content-Type":"application/x-www-form-urlencoded"};function u(e,t){!r.isUndefined(e)&&r.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}var c,f={transitional:s,adapter:(("undefined"!=typeof XMLHttpRequest||"undefined"!=typeof process&&"[object process]"===Object.prototype.toString.call(process))&&(c=n(7)),c),transformRequest:[function(e,t){return o(t,"Accept"),o(t,"Content-Type"),r.isFormData(e)||r.isArrayBuffer(e)||r.isBuffer(e)||r.isStream(e)||r.isFile(e)||r.isBlob(e)?e:r.isArrayBufferView(e)?e.buffer:r.isURLSearchParams(e)?(u(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):r.isObject(e)||t&&"application/json"===t["Content-Type"]?(u(t,"application/json"),function(e,t,n){if(r.isString(e))try{return(t||JSON.parse)(e),r.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(n||JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){var t=this.transitional||f.transitional,n=t&&t.silentJSONParsing,o=t&&t.forcedJSONParsing,s=!n&&"json"===this.responseType;if(s||o&&r.isString(e)&&e.length)try{return JSON.parse(e)}catch(e){if(s){if("SyntaxError"===e.name)throw i(e,this,"E_JSON_PARSE");throw e}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};r.forEach(["delete","get","head"],(function(e){f.headers[e]={}})),r.forEach(["post","put","patch"],(function(e){f.headers[e]=r.merge(a)})),e.exports=f},function(e,t,n){"use strict";e.exports=function(e,t){return function(){for(var n=new Array(arguments.length),r=0;r<n.length;r++)n[r]=arguments[r];return e.apply(t,n)}}},function(e,t,n){"use strict";var r=n(0);function o(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}e.exports=function(e,t,n){if(!t)return e;var i;if(n)i=n(t);else if(r.isURLSearchParams(t))i=t.toString();else{var s=[];r.forEach(t,(function(e,t){null!=e&&(r.isArray(e)?t+="[]":e=[e],r.forEach(e,(function(e){r.isDate(e)?e=e.toISOString():r.isObject(e)&&(e=JSON.stringify(e)),s.push(o(t)+"="+o(e))})))})),i=s.join("&")}if(i){var a=e.indexOf("#");-1!==a&&(e=e.slice(0,a)),e+=(-1===e.indexOf("?")?"?":"&")+i}return e}},function(e,t,n){"use strict";e.exports=function(e,t,n,r,o){return e.config=t,n&&(e.code=n),e.request=r,e.response=o,e.isAxiosError=!0,e.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code,status:this.response&&this.response.status?this.response.status:null}},e}},function(e,t,n){"use strict";e.exports={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1}},function(e,t,n){"use strict";var r=n(0),o=n(19),i=n(20),s=n(4),a=n(21),u=n(24),c=n(25),f=n(8),l=n(6),p=n(1);e.exports=function(e){return new Promise((function(t,n){var d,h=e.data,m=e.headers,v=e.responseType;function y(){e.cancelToken&&e.cancelToken.unsubscribe(d),e.signal&&e.signal.removeEventListener("abort",d)}r.isFormData(h)&&delete m["Content-Type"];var g=new XMLHttpRequest;if(e.auth){var b=e.auth.username||"",x=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";m.Authorization="Basic "+btoa(b+":"+x)}var w=a(e.baseURL,e.url);function E(){if(g){var r="getAllResponseHeaders"in g?u(g.getAllResponseHeaders()):null,i={data:v&&"text"!==v&&"json"!==v?g.response:g.responseText,status:g.status,statusText:g.statusText,headers:r,config:e,request:g};o((function(e){t(e),y()}),(function(e){n(e),y()}),i),g=null}}if(g.open(e.method.toUpperCase(),s(w,e.params,e.paramsSerializer),!0),g.timeout=e.timeout,"onloadend"in g?g.onloadend=E:g.onreadystatechange=function(){g&&4===g.readyState&&(0!==g.status||g.responseURL&&0===g.responseURL.indexOf("file:"))&&setTimeout(E)},g.onabort=function(){g&&(n(f("Request aborted",e,"ECONNABORTED",g)),g=null)},g.onerror=function(){n(f("Network Error",e,null,g)),g=null},g.ontimeout=function(){var t=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded",r=e.transitional||l;e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),n(f(t,e,r.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",g)),g=null},r.isStandardBrowserEnv()){var O=(e.withCredentials||c(w))&&e.xsrfCookieName?i.read(e.xsrfCookieName):void 0;O&&(m[e.xsrfHeaderName]=O)}"setRequestHeader"in g&&r.forEach(m,(function(e,t){void 0===h&&"content-type"===t.toLowerCase()?delete m[t]:g.setRequestHeader(t,e)})),r.isUndefined(e.withCredentials)||(g.withCredentials=!!e.withCredentials),v&&"json"!==v&&(g.responseType=e.responseType),"function"==typeof e.onDownloadProgress&&g.addEventListener("progress",e.onDownloadProgress),"function"==typeof e.onUploadProgress&&g.upload&&g.upload.addEventListener("progress",e.onUploadProgress),(e.cancelToken||e.signal)&&(d=function(e){g&&(n(!e||e&&e.type?new p("canceled"):e),g.abort(),g=null)},e.cancelToken&&e.cancelToken.subscribe(d),e.signal&&(e.signal.aborted?d():e.signal.addEventListener("abort",d))),h||(h=null),g.send(h)}))}},function(e,t,n){"use strict";var r=n(5);e.exports=function(e,t,n,o,i){var s=new Error(e);return r(s,t,n,o,i)}},function(e,t,n){"use strict";e.exports=function(e){return!(!e||!e.__CANCEL__)}},function(e,t,n){"use strict";var r=n(0);e.exports=function(e,t){t=t||{};var n={};function o(e,t){return r.isPlainObject(e)&&r.isPlainObject(t)?r.merge(e,t):r.isPlainObject(t)?r.merge({},t):r.isArray(t)?t.slice():t}function i(n){return r.isUndefined(t[n])?r.isUndefined(e[n])?void 0:o(void 0,e[n]):o(e[n],t[n])}function s(e){if(!r.isUndefined(t[e]))return o(void 0,t[e])}function a(n){return r.isUndefined(t[n])?r.isUndefined(e[n])?void 0:o(void 0,e[n]):o(void 0,t[n])}function u(n){return n in t?o(e[n],t[n]):n in e?o(void 0,e[n]):void 0}var c={url:s,method:s,data:s,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:u};return r.forEach(Object.keys(e).concat(Object.keys(t)),(function(e){var t=c[e]||i,o=t(e);r.isUndefined(o)&&t!==u||(n[e]=o)})),n}},function(e,t){e.exports={version:"0.26.1"}},function(e,t,n){e.exports=n(13)},function(e,t,n){"use strict";var r=n(0),o=n(3),i=n(14),s=n(10);var a=function e(t){var n=new i(t),a=o(i.prototype.request,n);return r.extend(a,i.prototype,n),r.extend(a,n),a.create=function(n){return e(s(t,n))},a}(n(2));a.Axios=i,a.Cancel=n(1),a.CancelToken=n(27),a.isCancel=n(9),a.VERSION=n(11).version,a.all=function(e){return Promise.all(e)},a.spread=n(28),a.isAxiosError=n(29),e.exports=a,e.exports.default=a},function(e,t,n){"use strict";var r=n(0),o=n(4),i=n(15),s=n(16),a=n(10),u=n(26),c=u.validators;function f(e){this.defaults=e,this.interceptors={request:new i,response:new i}}f.prototype.request=function(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{},(t=a(this.defaults,t)).method?t.method=t.method.toLowerCase():this.defaults.method?t.method=this.defaults.method.toLowerCase():t.method="get";var n=t.transitional;void 0!==n&&u.assertOptions(n,{silentJSONParsing:c.transitional(c.boolean),forcedJSONParsing:c.transitional(c.boolean),clarifyTimeoutError:c.transitional(c.boolean)},!1);var r=[],o=!0;this.interceptors.request.forEach((function(e){"function"==typeof e.runWhen&&!1===e.runWhen(t)||(o=o&&e.synchronous,r.unshift(e.fulfilled,e.rejected))}));var i,f=[];if(this.interceptors.response.forEach((function(e){f.push(e.fulfilled,e.rejected)})),!o){var l=[s,void 0];for(Array.prototype.unshift.apply(l,r),l=l.concat(f),i=Promise.resolve(t);l.length;)i=i.then(l.shift(),l.shift());return i}for(var p=t;r.length;){var d=r.shift(),h=r.shift();try{p=d(p)}catch(e){h(e);break}}try{i=s(p)}catch(e){return Promise.reject(e)}for(;f.length;)i=i.then(f.shift(),f.shift());return i},f.prototype.getUri=function(e){return e=a(this.defaults,e),o(e.url,e.params,e.paramsSerializer).replace(/^\?/,"")},r.forEach(["delete","get","head","options"],(function(e){f.prototype[e]=function(t,n){return this.request(a(n||{},{method:e,url:t,data:(n||{}).data}))}})),r.forEach(["post","put","patch"],(function(e){f.prototype[e]=function(t,n,r){return this.request(a(r||{},{method:e,url:t,data:n}))}})),e.exports=f},function(e,t,n){"use strict";var r=n(0);function o(){this.handlers=[]}o.prototype.use=function(e,t,n){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1},o.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},o.prototype.forEach=function(e){r.forEach(this.handlers,(function(t){null!==t&&e(t)}))},e.exports=o},function(e,t,n){"use strict";var r=n(0),o=n(17),i=n(9),s=n(2),a=n(1);function u(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new a("canceled")}e.exports=function(e){return u(e),e.headers=e.headers||{},e.data=o.call(e,e.data,e.headers,e.transformRequest),e.headers=r.merge(e.headers.common||{},e.headers[e.method]||{},e.headers),r.forEach(["delete","get","head","post","put","patch","common"],(function(t){delete e.headers[t]})),(e.adapter||s.adapter)(e).then((function(t){return u(e),t.data=o.call(e,t.data,t.headers,e.transformResponse),t}),(function(t){return i(t)||(u(e),t&&t.response&&(t.response.data=o.call(e,t.response.data,t.response.headers,e.transformResponse))),Promise.reject(t)}))}},function(e,t,n){"use strict";var r=n(0),o=n(2);e.exports=function(e,t,n){var i=this||o;return r.forEach(n,(function(n){e=n.call(i,e,t)})),e}},function(e,t,n){"use strict";var r=n(0);e.exports=function(e,t){r.forEach(e,(function(n,r){r!==t&&r.toUpperCase()===t.toUpperCase()&&(e[t]=n,delete e[r])}))}},function(e,t,n){"use strict";var r=n(8);e.exports=function(e,t,n){var o=n.config.validateStatus;n.status&&o&&!o(n.status)?t(r("Request failed with status code "+n.status,n.config,null,n.request,n)):e(n)}},function(e,t,n){"use strict";var r=n(0);e.exports=r.isStandardBrowserEnv()?{write:function(e,t,n,o,i,s){var a=[];a.push(e+"="+encodeURIComponent(t)),r.isNumber(n)&&a.push("expires="+new Date(n).toGMTString()),r.isString(o)&&a.push("path="+o),r.isString(i)&&a.push("domain="+i),!0===s&&a.push("secure"),document.cookie=a.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}}},function(e,t,n){"use strict";var r=n(22),o=n(23);e.exports=function(e,t){return e&&!r(t)?o(e,t):t}},function(e,t,n){"use strict";e.exports=function(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}},function(e,t,n){"use strict";e.exports=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}},function(e,t,n){"use strict";var r=n(0),o=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];e.exports=function(e){var t,n,i,s={};return e?(r.forEach(e.split("\n"),(function(e){if(i=e.indexOf(":"),t=r.trim(e.substr(0,i)).toLowerCase(),n=r.trim(e.substr(i+1)),t){if(s[t]&&o.indexOf(t)>=0)return;s[t]="set-cookie"===t?(s[t]?s[t]:[]).concat([n]):s[t]?s[t]+", "+n:n}})),s):s}},function(e,t,n){"use strict";var r=n(0);e.exports=r.isStandardBrowserEnv()?function(){var e,t=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement("a");function o(e){var r=e;return t&&(n.setAttribute("href",r),r=n.href),n.setAttribute("href",r),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:"/"===n.pathname.charAt(0)?n.pathname:"/"+n.pathname}}return e=o(window.location.href),function(t){var n=r.isString(t)?o(t):t;return n.protocol===e.protocol&&n.host===e.host}}():function(){return!0}},function(e,t,n){"use strict";var r=n(11).version,o={};["object","boolean","number","function","string","symbol"].forEach((function(e,t){o[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}}));var i={};o.transitional=function(e,t,n){function o(e,t){return"[Axios v"+r+"] Transitional option '"+e+"'"+t+(n?". "+n:"")}return function(n,r,s){if(!1===e)throw new Error(o(r," has been removed"+(t?" in "+t:"")));return t&&!i[r]&&(i[r]=!0,console.warn(o(r," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(n,r,s)}},e.exports={assertOptions:function(e,t,n){if("object"!=typeof e)throw new TypeError("options must be an object");for(var r=Object.keys(e),o=r.length;o-- >0;){var i=r[o],s=t[i];if(s){var a=e[i],u=void 0===a||s(a,i,e);if(!0!==u)throw new TypeError("option "+i+" must be "+u)}else if(!0!==n)throw Error("Unknown option "+i)}},validators:o}},function(e,t,n){"use strict";var r=n(1);function o(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise((function(e){t=e}));var n=this;this.promise.then((function(e){if(n._listeners){var t,r=n._listeners.length;for(t=0;t<r;t++)n._listeners[t](e);n._listeners=null}})),this.promise.then=function(e){var t,r=new Promise((function(e){n.subscribe(e),t=e})).then(e);return r.cancel=function(){n.unsubscribe(t)},r},e((function(e){n.reason||(n.reason=new r(e),t(n.reason))}))}o.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},o.prototype.subscribe=function(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]},o.prototype.unsubscribe=function(e){if(this._listeners){var t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}},o.source=function(){var e;return{token:new o((function(t){e=t})),cancel:e}},e.exports=o},function(e,t,n){"use strict";e.exports=function(e){return function(t){return e.apply(null,t)}}},function(e,t,n){"use strict";var r=n(0);e.exports=function(e){return r.isObject(e)&&!0===e.isAxiosError}}])}));
2
+ //# sourceMappingURL=axios.min.map
node_modules/axios/dist/axios.min.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"sources":["webpack://axios/webpack/universalModuleDefinition","webpack://axios/webpack/bootstrap","webpack://axios/./lib/utils.js","webpack://axios/./lib/cancel/Cancel.js","webpack://axios/./lib/defaults/index.js","webpack://axios/./lib/helpers/bind.js","webpack://axios/./lib/helpers/buildURL.js","webpack://axios/./lib/core/enhanceError.js","webpack://axios/./lib/defaults/transitional.js","webpack://axios/./lib/adapters/xhr.js","webpack://axios/./lib/core/createError.js","webpack://axios/./lib/cancel/isCancel.js","webpack://axios/./lib/core/mergeConfig.js","webpack://axios/./lib/env/data.js","webpack://axios/./index.js","webpack://axios/./lib/axios.js","webpack://axios/./lib/core/Axios.js","webpack://axios/./lib/core/InterceptorManager.js","webpack://axios/./lib/core/dispatchRequest.js","webpack://axios/./lib/core/transformData.js","webpack://axios/./lib/helpers/normalizeHeaderName.js","webpack://axios/./lib/core/settle.js","webpack://axios/./lib/helpers/cookies.js","webpack://axios/./lib/core/buildFullPath.js","webpack://axios/./lib/helpers/isAbsoluteURL.js","webpack://axios/./lib/helpers/combineURLs.js","webpack://axios/./lib/helpers/parseHeaders.js","webpack://axios/./lib/helpers/isURLSameOrigin.js","webpack://axios/./lib/helpers/validator.js","webpack://axios/./lib/cancel/CancelToken.js","webpack://axios/./lib/helpers/spread.js","webpack://axios/./lib/helpers/isAxiosError.js"],"names":["root","factory","exports","module","define","amd","this","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","toString","isArray","val","Array","isUndefined","isArrayBuffer","isObject","isPlainObject","getPrototypeOf","isFunction","forEach","obj","fn","length","isBuffer","constructor","isFormData","isArrayBufferView","ArrayBuffer","isView","buffer","isString","isNumber","isDate","isFile","isBlob","isStream","pipe","isURLSearchParams","isStandardBrowserEnv","navigator","product","window","document","merge","result","assignValue","slice","arguments","extend","a","b","thisArg","trim","str","replace","stripBOM","content","charCodeAt","Cancel","message","__CANCEL__","utils","normalizeHeaderName","enhanceError","transitionalDefaults","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","headers","adapter","defaults","transitional","XMLHttpRequest","process","transformRequest","data","rawValue","parser","encoder","JSON","parse","e","stringify","stringifySafely","transformResponse","silentJSONParsing","forcedJSONParsing","strictJSONParsing","responseType","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","status","common","method","args","apply","encode","encodeURIComponent","url","params","paramsSerializer","serializedParams","parts","v","toISOString","push","join","hashmarkIndex","indexOf","error","config","code","request","response","isAxiosError","toJSON","description","number","fileName","lineNumber","columnNumber","stack","clarifyTimeoutError","settle","cookies","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","Promise","resolve","reject","onCanceled","requestData","requestHeaders","done","cancelToken","unsubscribe","signal","removeEventListener","auth","username","password","unescape","Authorization","btoa","fullPath","baseURL","onloadend","responseHeaders","getAllResponseHeaders","responseText","statusText","err","open","toUpperCase","onreadystatechange","readyState","responseURL","setTimeout","onabort","onerror","ontimeout","timeoutErrorMessage","xsrfValue","withCredentials","read","undefined","toLowerCase","setRequestHeader","onDownloadProgress","addEventListener","onUploadProgress","upload","cancel","type","abort","subscribe","aborted","send","Error","config1","config2","getMergedValue","target","source","mergeDeepProperties","prop","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","keys","concat","configValue","Axios","mergeConfig","axios","createInstance","defaultConfig","context","instance","instanceConfig","CancelToken","isCancel","VERSION","version","all","promises","spread","default","InterceptorManager","dispatchRequest","validator","validators","interceptors","configOrUrl","assertOptions","boolean","requestInterceptorChain","synchronousRequestInterceptors","interceptor","runWhen","synchronous","unshift","fulfilled","rejected","promise","responseInterceptorChain","chain","then","shift","newConfig","onFulfilled","onRejected","getUri","handlers","use","options","eject","id","h","transformData","throwIfCancellationRequested","throwIfRequested","reason","fns","normalizedName","write","expires","path","domain","secure","cookie","Date","toGMTString","match","RegExp","decodeURIComponent","remove","now","isAbsoluteURL","combineURLs","requestedURL","test","relativeURL","ignoreDuplicateOf","parsed","split","line","substr","originURL","msie","userAgent","urlParsingNode","createElement","resolveURL","href","setAttribute","protocol","host","search","hash","hostname","port","pathname","charAt","location","requestURL","thing","deprecatedWarnings","formatMessage","opt","desc","opts","console","warn","schema","allowUnknown","TypeError","executor","resolvePromise","token","_listeners","onfulfilled","_resolve","listener","index","splice","callback","arr","payload"],"mappings":"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","file":"axios.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"axios\"] = factory();\n\telse\n\t\troot[\"axios\"] = factory();\n})(this, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 12);\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return Array.isArray(val);\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return toString.call(val) === '[object FormData]';\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return toString.call(val) === '[object URLSearchParams]';\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar utils = require('../utils');\nvar normalizeHeaderName = require('../helpers/normalizeHeaderName');\nvar enhanceError = require('../core/enhanceError');\nvar transitionalDefaults = require('./transitional');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('../adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('../adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n };\n return error;\n};\n","'use strict';\n\nmodule.exports = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\nvar transitionalDefaults = require('../defaults/transitional');\nvar Cancel = require('../cancel/Cancel');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || (cancel && cancel.type) ? new Cancel('canceled') : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n","module.exports = {\n \"version\": \"0.26.1\"\n};","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new Cancel('canceled');\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar VERSION = require('../env/data').version;\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')));\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n};\n"],"sourceRoot":""}
node_modules/axios/index.d.ts ADDED
@@ -0,0 +1,221 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // TypeScript Version: 3.0
2
+
3
+ export type AxiosRequestHeaders = Record<string, string | number | boolean>;
4
+
5
+ export type AxiosResponseHeaders = Record<string, string> & {
6
+ "set-cookie"?: string[]
7
+ };
8
+
9
+ export interface AxiosRequestTransformer {
10
+ (data: any, headers?: AxiosRequestHeaders): any;
11
+ }
12
+
13
+ export interface AxiosResponseTransformer {
14
+ (data: any, headers?: AxiosResponseHeaders): any;
15
+ }
16
+
17
+ export interface AxiosAdapter {
18
+ (config: AxiosRequestConfig): AxiosPromise;
19
+ }
20
+
21
+ export interface AxiosBasicCredentials {
22
+ username: string;
23
+ password: string;
24
+ }
25
+
26
+ export interface AxiosProxyConfig {
27
+ host: string;
28
+ port: number;
29
+ auth?: {
30
+ username: string;
31
+ password: string;
32
+ };
33
+ protocol?: string;
34
+ }
35
+
36
+ export type Method =
37
+ | 'get' | 'GET'
38
+ | 'delete' | 'DELETE'
39
+ | 'head' | 'HEAD'
40
+ | 'options' | 'OPTIONS'
41
+ | 'post' | 'POST'
42
+ | 'put' | 'PUT'
43
+ | 'patch' | 'PATCH'
44
+ | 'purge' | 'PURGE'
45
+ | 'link' | 'LINK'
46
+ | 'unlink' | 'UNLINK';
47
+
48
+ export type ResponseType =
49
+ | 'arraybuffer'
50
+ | 'blob'
51
+ | 'document'
52
+ | 'json'
53
+ | 'text'
54
+ | 'stream';
55
+
56
+ export type responseEncoding =
57
+ | 'ascii' | 'ASCII'
58
+ | 'ansi' | 'ANSI'
59
+ | 'binary' | 'BINARY'
60
+ | 'base64' | 'BASE64'
61
+ | 'base64url' | 'BASE64URL'
62
+ | 'hex' | 'HEX'
63
+ | 'latin1' | 'LATIN1'
64
+ | 'ucs-2' | 'UCS-2'
65
+ | 'ucs2' | 'UCS2'
66
+ | 'utf-8' | 'UTF-8'
67
+ | 'utf8' | 'UTF8'
68
+ | 'utf16le' | 'UTF16LE';
69
+
70
+ export interface TransitionalOptions {
71
+ silentJSONParsing?: boolean;
72
+ forcedJSONParsing?: boolean;
73
+ clarifyTimeoutError?: boolean;
74
+ }
75
+
76
+ export interface AxiosRequestConfig<D = any> {
77
+ url?: string;
78
+ method?: Method;
79
+ baseURL?: string;
80
+ transformRequest?: AxiosRequestTransformer | AxiosRequestTransformer[];
81
+ transformResponse?: AxiosResponseTransformer | AxiosResponseTransformer[];
82
+ headers?: AxiosRequestHeaders;
83
+ params?: any;
84
+ paramsSerializer?: (params: any) => string;
85
+ data?: D;
86
+ timeout?: number;
87
+ timeoutErrorMessage?: string;
88
+ withCredentials?: boolean;
89
+ adapter?: AxiosAdapter;
90
+ auth?: AxiosBasicCredentials;
91
+ responseType?: ResponseType;
92
+ responseEncoding?: responseEncoding | string;
93
+ xsrfCookieName?: string;
94
+ xsrfHeaderName?: string;
95
+ onUploadProgress?: (progressEvent: any) => void;
96
+ onDownloadProgress?: (progressEvent: any) => void;
97
+ maxContentLength?: number;
98
+ validateStatus?: ((status: number) => boolean) | null;
99
+ maxBodyLength?: number;
100
+ maxRedirects?: number;
101
+ socketPath?: string | null;
102
+ httpAgent?: any;
103
+ httpsAgent?: any;
104
+ proxy?: AxiosProxyConfig | false;
105
+ cancelToken?: CancelToken;
106
+ decompress?: boolean;
107
+ transitional?: TransitionalOptions;
108
+ signal?: AbortSignal;
109
+ insecureHTTPParser?: boolean;
110
+ }
111
+
112
+ export interface HeadersDefaults {
113
+ common: AxiosRequestHeaders;
114
+ delete: AxiosRequestHeaders;
115
+ get: AxiosRequestHeaders;
116
+ head: AxiosRequestHeaders;
117
+ post: AxiosRequestHeaders;
118
+ put: AxiosRequestHeaders;
119
+ patch: AxiosRequestHeaders;
120
+ options?: AxiosRequestHeaders;
121
+ purge?: AxiosRequestHeaders;
122
+ link?: AxiosRequestHeaders;
123
+ unlink?: AxiosRequestHeaders;
124
+ }
125
+
126
+ export interface AxiosDefaults<D = any> extends Omit<AxiosRequestConfig<D>, 'headers'> {
127
+ headers: HeadersDefaults;
128
+ }
129
+
130
+ export interface AxiosResponse<T = any, D = any> {
131
+ data: T;
132
+ status: number;
133
+ statusText: string;
134
+ headers: AxiosResponseHeaders;
135
+ config: AxiosRequestConfig<D>;
136
+ request?: any;
137
+ }
138
+
139
+ export interface AxiosError<T = any, D = any> extends Error {
140
+ config: AxiosRequestConfig<D>;
141
+ code?: string;
142
+ request?: any;
143
+ response?: AxiosResponse<T, D>;
144
+ isAxiosError: boolean;
145
+ toJSON: () => object;
146
+ }
147
+
148
+ export interface AxiosPromise<T = any> extends Promise<AxiosResponse<T>> {
149
+ }
150
+
151
+ export interface CancelStatic {
152
+ new (message?: string): Cancel;
153
+ }
154
+
155
+ export interface Cancel {
156
+ message: string | undefined;
157
+ }
158
+
159
+ export interface Canceler {
160
+ (message?: string): void;
161
+ }
162
+
163
+ export interface CancelTokenStatic {
164
+ new (executor: (cancel: Canceler) => void): CancelToken;
165
+ source(): CancelTokenSource;
166
+ }
167
+
168
+ export interface CancelToken {
169
+ promise: Promise<Cancel>;
170
+ reason?: Cancel;
171
+ throwIfRequested(): void;
172
+ }
173
+
174
+ export interface CancelTokenSource {
175
+ token: CancelToken;
176
+ cancel: Canceler;
177
+ }
178
+
179
+ export interface AxiosInterceptorManager<V> {
180
+ use<T = V>(onFulfilled?: (value: V) => T | Promise<T>, onRejected?: (error: any) => any): number;
181
+ eject(id: number): void;
182
+ }
183
+
184
+ export class Axios {
185
+ constructor(config?: AxiosRequestConfig);
186
+ defaults: AxiosDefaults;
187
+ interceptors: {
188
+ request: AxiosInterceptorManager<AxiosRequestConfig>;
189
+ response: AxiosInterceptorManager<AxiosResponse>;
190
+ };
191
+ getUri(config?: AxiosRequestConfig): string;
192
+ request<T = any, R = AxiosResponse<T>, D = any>(config: AxiosRequestConfig<D>): Promise<R>;
193
+ get<T = any, R = AxiosResponse<T>, D = any>(url: string, config?: AxiosRequestConfig<D>): Promise<R>;
194
+ delete<T = any, R = AxiosResponse<T>, D = any>(url: string, config?: AxiosRequestConfig<D>): Promise<R>;
195
+ head<T = any, R = AxiosResponse<T>, D = any>(url: string, config?: AxiosRequestConfig<D>): Promise<R>;
196
+ options<T = any, R = AxiosResponse<T>, D = any>(url: string, config?: AxiosRequestConfig<D>): Promise<R>;
197
+ post<T = any, R = AxiosResponse<T>, D = any>(url: string, data?: D, config?: AxiosRequestConfig<D>): Promise<R>;
198
+ put<T = any, R = AxiosResponse<T>, D = any>(url: string, data?: D, config?: AxiosRequestConfig<D>): Promise<R>;
199
+ patch<T = any, R = AxiosResponse<T>, D = any>(url: string, data?: D, config?: AxiosRequestConfig<D>): Promise<R>;
200
+ }
201
+
202
+ export interface AxiosInstance extends Axios {
203
+ (config: AxiosRequestConfig): AxiosPromise;
204
+ (url: string, config?: AxiosRequestConfig): AxiosPromise;
205
+ }
206
+
207
+ export interface AxiosStatic extends AxiosInstance {
208
+ create(config?: AxiosRequestConfig): AxiosInstance;
209
+ Cancel: CancelStatic;
210
+ CancelToken: CancelTokenStatic;
211
+ Axios: typeof Axios;
212
+ readonly VERSION: string;
213
+ isCancel(value: any): boolean;
214
+ all<T>(values: Array<T | Promise<T>>): Promise<T[]>;
215
+ spread<T, R>(callback: (...args: T[]) => R): (array: T[]) => R;
216
+ isAxiosError(payload: any): payload is AxiosError;
217
+ }
218
+
219
+ declare const axios: AxiosStatic;
220
+
221
+ export default axios;
node_modules/axios/index.js ADDED
@@ -0,0 +1 @@
 
 
1
+ module.exports = require('./lib/axios');
node_modules/axios/lib/adapters/README.md ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # axios // adapters
2
+
3
+ The modules under `adapters/` are modules that handle dispatching a request and settling a returned `Promise` once a response is received.
4
+
5
+ ## Example
6
+
7
+ ```js
8
+ var settle = require('./../core/settle');
9
+
10
+ module.exports = function myAdapter(config) {
11
+ // At this point:
12
+ // - config has been merged with defaults
13
+ // - request transformers have already run
14
+ // - request interceptors have already run
15
+
16
+ // Make the request using config provided
17
+ // Upon response settle the Promise
18
+
19
+ return new Promise(function(resolve, reject) {
20
+
21
+ var response = {
22
+ data: responseData,
23
+ status: request.status,
24
+ statusText: request.statusText,
25
+ headers: responseHeaders,
26
+ config: config,
27
+ request: request
28
+ };
29
+
30
+ settle(resolve, reject, response);
31
+
32
+ // From here:
33
+ // - response transformers will run
34
+ // - response interceptors will run
35
+ });
36
+ }
37
+ ```
node_modules/axios/lib/adapters/http.js ADDED
@@ -0,0 +1,404 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 'use strict';
2
+
3
+ var utils = require('./../utils');
4
+ var settle = require('./../core/settle');
5
+ var buildFullPath = require('../core/buildFullPath');
6
+ var buildURL = require('./../helpers/buildURL');
7
+ var http = require('http');
8
+ var https = require('https');
9
+ var httpFollow = require('follow-redirects').http;
10
+ var httpsFollow = require('follow-redirects').https;
11
+ var url = require('url');
12
+ var zlib = require('zlib');
13
+ var VERSION = require('./../env/data').version;
14
+ var createError = require('../core/createError');
15
+ var enhanceError = require('../core/enhanceError');
16
+ var transitionalDefaults = require('../defaults/transitional');
17
+ var Cancel = require('../cancel/Cancel');
18
+
19
+ var isHttps = /https:?/;
20
+
21
+ /**
22
+ *
23
+ * @param {http.ClientRequestArgs} options
24
+ * @param {AxiosProxyConfig} proxy
25
+ * @param {string} location
26
+ */
27
+ function setProxy(options, proxy, location) {
28
+ options.hostname = proxy.host;
29
+ options.host = proxy.host;
30
+ options.port = proxy.port;
31
+ options.path = location;
32
+
33
+ // Basic proxy authorization
34
+ if (proxy.auth) {
35
+ var base64 = Buffer.from(proxy.auth.username + ':' + proxy.auth.password, 'utf8').toString('base64');
36
+ options.headers['Proxy-Authorization'] = 'Basic ' + base64;
37
+ }
38
+
39
+ // If a proxy is used, any redirects must also pass through the proxy
40
+ options.beforeRedirect = function beforeRedirect(redirection) {
41
+ redirection.headers.host = redirection.host;
42
+ setProxy(redirection, proxy, redirection.href);
43
+ };
44
+ }
45
+
46
+ /*eslint consistent-return:0*/
47
+ module.exports = function httpAdapter(config) {
48
+ return new Promise(function dispatchHttpRequest(resolvePromise, rejectPromise) {
49
+ var onCanceled;
50
+ function done() {
51
+ if (config.cancelToken) {
52
+ config.cancelToken.unsubscribe(onCanceled);
53
+ }
54
+
55
+ if (config.signal) {
56
+ config.signal.removeEventListener('abort', onCanceled);
57
+ }
58
+ }
59
+ var resolve = function resolve(value) {
60
+ done();
61
+ resolvePromise(value);
62
+ };
63
+ var rejected = false;
64
+ var reject = function reject(value) {
65
+ done();
66
+ rejected = true;
67
+ rejectPromise(value);
68
+ };
69
+ var data = config.data;
70
+ var headers = config.headers;
71
+ var headerNames = {};
72
+
73
+ Object.keys(headers).forEach(function storeLowerName(name) {
74
+ headerNames[name.toLowerCase()] = name;
75
+ });
76
+
77
+ // Set User-Agent (required by some servers)
78
+ // See https://github.com/axios/axios/issues/69
79
+ if ('user-agent' in headerNames) {
80
+ // User-Agent is specified; handle case where no UA header is desired
81
+ if (!headers[headerNames['user-agent']]) {
82
+ delete headers[headerNames['user-agent']];
83
+ }
84
+ // Otherwise, use specified value
85
+ } else {
86
+ // Only set header if it hasn't been set in config
87
+ headers['User-Agent'] = 'axios/' + VERSION;
88
+ }
89
+
90
+ if (data && !utils.isStream(data)) {
91
+ if (Buffer.isBuffer(data)) {
92
+ // Nothing to do...
93
+ } else if (utils.isArrayBuffer(data)) {
94
+ data = Buffer.from(new Uint8Array(data));
95
+ } else if (utils.isString(data)) {
96
+ data = Buffer.from(data, 'utf-8');
97
+ } else {
98
+ return reject(createError(
99
+ 'Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream',
100
+ config
101
+ ));
102
+ }
103
+
104
+ if (config.maxBodyLength > -1 && data.length > config.maxBodyLength) {
105
+ return reject(createError('Request body larger than maxBodyLength limit', config));
106
+ }
107
+
108
+ // Add Content-Length header if data exists
109
+ if (!headerNames['content-length']) {
110
+ headers['Content-Length'] = data.length;
111
+ }
112
+ }
113
+
114
+ // HTTP basic authentication
115
+ var auth = undefined;
116
+ if (config.auth) {
117
+ var username = config.auth.username || '';
118
+ var password = config.auth.password || '';
119
+ auth = username + ':' + password;
120
+ }
121
+
122
+ // Parse url
123
+ var fullPath = buildFullPath(config.baseURL, config.url);
124
+ var parsed = url.parse(fullPath);
125
+ var protocol = parsed.protocol || 'http:';
126
+
127
+ if (!auth && parsed.auth) {
128
+ var urlAuth = parsed.auth.split(':');
129
+ var urlUsername = urlAuth[0] || '';
130
+ var urlPassword = urlAuth[1] || '';
131
+ auth = urlUsername + ':' + urlPassword;
132
+ }
133
+
134
+ if (auth && headerNames.authorization) {
135
+ delete headers[headerNames.authorization];
136
+ }
137
+
138
+ var isHttpsRequest = isHttps.test(protocol);
139
+ var agent = isHttpsRequest ? config.httpsAgent : config.httpAgent;
140
+
141
+ try {
142
+ buildURL(parsed.path, config.params, config.paramsSerializer).replace(/^\?/, '');
143
+ } catch (err) {
144
+ var customErr = new Error(err.message);
145
+ customErr.config = config;
146
+ customErr.url = config.url;
147
+ customErr.exists = true;
148
+ reject(customErr);
149
+ }
150
+
151
+ var options = {
152
+ path: buildURL(parsed.path, config.params, config.paramsSerializer).replace(/^\?/, ''),
153
+ method: config.method.toUpperCase(),
154
+ headers: headers,
155
+ agent: agent,
156
+ agents: { http: config.httpAgent, https: config.httpsAgent },
157
+ auth: auth
158
+ };
159
+
160
+ if (config.socketPath) {
161
+ options.socketPath = config.socketPath;
162
+ } else {
163
+ options.hostname = parsed.hostname;
164
+ options.port = parsed.port;
165
+ }
166
+
167
+ var proxy = config.proxy;
168
+ if (!proxy && proxy !== false) {
169
+ var proxyEnv = protocol.slice(0, -1) + '_proxy';
170
+ var proxyUrl = process.env[proxyEnv] || process.env[proxyEnv.toUpperCase()];
171
+ if (proxyUrl) {
172
+ var parsedProxyUrl = url.parse(proxyUrl);
173
+ var noProxyEnv = process.env.no_proxy || process.env.NO_PROXY;
174
+ var shouldProxy = true;
175
+
176
+ if (noProxyEnv) {
177
+ var noProxy = noProxyEnv.split(',').map(function trim(s) {
178
+ return s.trim();
179
+ });
180
+
181
+ shouldProxy = !noProxy.some(function proxyMatch(proxyElement) {
182
+ if (!proxyElement) {
183
+ return false;
184
+ }
185
+ if (proxyElement === '*') {
186
+ return true;
187
+ }
188
+ if (proxyElement[0] === '.' &&
189
+ parsed.hostname.substr(parsed.hostname.length - proxyElement.length) === proxyElement) {
190
+ return true;
191
+ }
192
+
193
+ return parsed.hostname === proxyElement;
194
+ });
195
+ }
196
+
197
+ if (shouldProxy) {
198
+ proxy = {
199
+ host: parsedProxyUrl.hostname,
200
+ port: parsedProxyUrl.port,
201
+ protocol: parsedProxyUrl.protocol
202
+ };
203
+
204
+ if (parsedProxyUrl.auth) {
205
+ var proxyUrlAuth = parsedProxyUrl.auth.split(':');
206
+ proxy.auth = {
207
+ username: proxyUrlAuth[0],
208
+ password: proxyUrlAuth[1]
209
+ };
210
+ }
211
+ }
212
+ }
213
+ }
214
+
215
+ if (proxy) {
216
+ options.headers.host = parsed.hostname + (parsed.port ? ':' + parsed.port : '');
217
+ setProxy(options, proxy, protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path);
218
+ }
219
+
220
+ var transport;
221
+ var isHttpsProxy = isHttpsRequest && (proxy ? isHttps.test(proxy.protocol) : true);
222
+ if (config.transport) {
223
+ transport = config.transport;
224
+ } else if (config.maxRedirects === 0) {
225
+ transport = isHttpsProxy ? https : http;
226
+ } else {
227
+ if (config.maxRedirects) {
228
+ options.maxRedirects = config.maxRedirects;
229
+ }
230
+ transport = isHttpsProxy ? httpsFollow : httpFollow;
231
+ }
232
+
233
+ if (config.maxBodyLength > -1) {
234
+ options.maxBodyLength = config.maxBodyLength;
235
+ }
236
+
237
+ if (config.insecureHTTPParser) {
238
+ options.insecureHTTPParser = config.insecureHTTPParser;
239
+ }
240
+
241
+ // Create the request
242
+ var req = transport.request(options, function handleResponse(res) {
243
+ if (req.aborted) return;
244
+
245
+ // uncompress the response body transparently if required
246
+ var stream = res;
247
+
248
+ // return the last request in case of redirects
249
+ var lastRequest = res.req || req;
250
+
251
+
252
+ // if no content, is HEAD request or decompress disabled we should not decompress
253
+ if (res.statusCode !== 204 && lastRequest.method !== 'HEAD' && config.decompress !== false) {
254
+ switch (res.headers['content-encoding']) {
255
+ /*eslint default-case:0*/
256
+ case 'gzip':
257
+ case 'compress':
258
+ case 'deflate':
259
+ // add the unzipper to the body stream processing pipeline
260
+ stream = stream.pipe(zlib.createUnzip());
261
+
262
+ // remove the content-encoding in order to not confuse downstream operations
263
+ delete res.headers['content-encoding'];
264
+ break;
265
+ }
266
+ }
267
+
268
+ var response = {
269
+ status: res.statusCode,
270
+ statusText: res.statusMessage,
271
+ headers: res.headers,
272
+ config: config,
273
+ request: lastRequest
274
+ };
275
+
276
+ if (config.responseType === 'stream') {
277
+ response.data = stream;
278
+ settle(resolve, reject, response);
279
+ } else {
280
+ var responseBuffer = [];
281
+ var totalResponseBytes = 0;
282
+ stream.on('data', function handleStreamData(chunk) {
283
+ responseBuffer.push(chunk);
284
+ totalResponseBytes += chunk.length;
285
+
286
+ // make sure the content length is not over the maxContentLength if specified
287
+ if (config.maxContentLength > -1 && totalResponseBytes > config.maxContentLength) {
288
+ // stream.destoy() emit aborted event before calling reject() on Node.js v16
289
+ rejected = true;
290
+ stream.destroy();
291
+ reject(createError('maxContentLength size of ' + config.maxContentLength + ' exceeded',
292
+ config, null, lastRequest));
293
+ }
294
+ });
295
+
296
+ stream.on('aborted', function handlerStreamAborted() {
297
+ if (rejected) {
298
+ return;
299
+ }
300
+ stream.destroy();
301
+ reject(createError('error request aborted', config, 'ERR_REQUEST_ABORTED', lastRequest));
302
+ });
303
+
304
+ stream.on('error', function handleStreamError(err) {
305
+ if (req.aborted) return;
306
+ reject(enhanceError(err, config, null, lastRequest));
307
+ });
308
+
309
+ stream.on('end', function handleStreamEnd() {
310
+ try {
311
+ var responseData = responseBuffer.length === 1 ? responseBuffer[0] : Buffer.concat(responseBuffer);
312
+ if (config.responseType !== 'arraybuffer') {
313
+ responseData = responseData.toString(config.responseEncoding);
314
+ if (!config.responseEncoding || config.responseEncoding === 'utf8') {
315
+ responseData = utils.stripBOM(responseData);
316
+ }
317
+ }
318
+ response.data = responseData;
319
+ } catch (err) {
320
+ reject(enhanceError(err, config, err.code, response.request, response));
321
+ }
322
+ settle(resolve, reject, response);
323
+ });
324
+ }
325
+ });
326
+
327
+ // Handle errors
328
+ req.on('error', function handleRequestError(err) {
329
+ if (req.aborted && err.code !== 'ERR_FR_TOO_MANY_REDIRECTS') return;
330
+ reject(enhanceError(err, config, null, req));
331
+ });
332
+
333
+ // set tcp keep alive to prevent drop connection by peer
334
+ req.on('socket', function handleRequestSocket(socket) {
335
+ // default interval of sending ack packet is 1 minute
336
+ socket.setKeepAlive(true, 1000 * 60);
337
+ });
338
+
339
+ // Handle request timeout
340
+ if (config.timeout) {
341
+ // This is forcing a int timeout to avoid problems if the `req` interface doesn't handle other types.
342
+ var timeout = parseInt(config.timeout, 10);
343
+
344
+ if (isNaN(timeout)) {
345
+ reject(createError(
346
+ 'error trying to parse `config.timeout` to int',
347
+ config,
348
+ 'ERR_PARSE_TIMEOUT',
349
+ req
350
+ ));
351
+
352
+ return;
353
+ }
354
+
355
+ // Sometime, the response will be very slow, and does not respond, the connect event will be block by event loop system.
356
+ // And timer callback will be fired, and abort() will be invoked before connection, then get "socket hang up" and code ECONNRESET.
357
+ // At this time, if we have a large number of request, nodejs will hang up some socket on background. and the number will up and up.
358
+ // And then these socket which be hang up will devoring CPU little by little.
359
+ // ClientRequest.setTimeout will be fired on the specify milliseconds, and can make sure that abort() will be fired after connect.
360
+ req.setTimeout(timeout, function handleRequestTimeout() {
361
+ req.abort();
362
+ var timeoutErrorMessage = '';
363
+ if (config.timeoutErrorMessage) {
364
+ timeoutErrorMessage = config.timeoutErrorMessage;
365
+ } else {
366
+ timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';
367
+ }
368
+ var transitional = config.transitional || transitionalDefaults;
369
+ reject(createError(
370
+ timeoutErrorMessage,
371
+ config,
372
+ transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',
373
+ req
374
+ ));
375
+ });
376
+ }
377
+
378
+ if (config.cancelToken || config.signal) {
379
+ // Handle cancellation
380
+ // eslint-disable-next-line func-names
381
+ onCanceled = function(cancel) {
382
+ if (req.aborted) return;
383
+
384
+ req.abort();
385
+ reject(!cancel || (cancel && cancel.type) ? new Cancel('canceled') : cancel);
386
+ };
387
+
388
+ config.cancelToken && config.cancelToken.subscribe(onCanceled);
389
+ if (config.signal) {
390
+ config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);
391
+ }
392
+ }
393
+
394
+
395
+ // Send the request
396
+ if (utils.isStream(data)) {
397
+ data.on('error', function handleStreamError(err) {
398
+ reject(enhanceError(err, config, null, req));
399
+ }).pipe(req);
400
+ } else {
401
+ req.end(data);
402
+ }
403
+ });
404
+ };
node_modules/axios/lib/adapters/xhr.js ADDED
@@ -0,0 +1,212 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 'use strict';
2
+
3
+ var utils = require('./../utils');
4
+ var settle = require('./../core/settle');
5
+ var cookies = require('./../helpers/cookies');
6
+ var buildURL = require('./../helpers/buildURL');
7
+ var buildFullPath = require('../core/buildFullPath');
8
+ var parseHeaders = require('./../helpers/parseHeaders');
9
+ var isURLSameOrigin = require('./../helpers/isURLSameOrigin');
10
+ var createError = require('../core/createError');
11
+ var transitionalDefaults = require('../defaults/transitional');
12
+ var Cancel = require('../cancel/Cancel');
13
+
14
+ module.exports = function xhrAdapter(config) {
15
+ return new Promise(function dispatchXhrRequest(resolve, reject) {
16
+ var requestData = config.data;
17
+ var requestHeaders = config.headers;
18
+ var responseType = config.responseType;
19
+ var onCanceled;
20
+ function done() {
21
+ if (config.cancelToken) {
22
+ config.cancelToken.unsubscribe(onCanceled);
23
+ }
24
+
25
+ if (config.signal) {
26
+ config.signal.removeEventListener('abort', onCanceled);
27
+ }
28
+ }
29
+
30
+ if (utils.isFormData(requestData)) {
31
+ delete requestHeaders['Content-Type']; // Let the browser set it
32
+ }
33
+
34
+ var request = new XMLHttpRequest();
35
+
36
+ // HTTP basic authentication
37
+ if (config.auth) {
38
+ var username = config.auth.username || '';
39
+ var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';
40
+ requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);
41
+ }
42
+
43
+ var fullPath = buildFullPath(config.baseURL, config.url);
44
+ request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);
45
+
46
+ // Set the request timeout in MS
47
+ request.timeout = config.timeout;
48
+
49
+ function onloadend() {
50
+ if (!request) {
51
+ return;
52
+ }
53
+ // Prepare the response
54
+ var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;
55
+ var responseData = !responseType || responseType === 'text' || responseType === 'json' ?
56
+ request.responseText : request.response;
57
+ var response = {
58
+ data: responseData,
59
+ status: request.status,
60
+ statusText: request.statusText,
61
+ headers: responseHeaders,
62
+ config: config,
63
+ request: request
64
+ };
65
+
66
+ settle(function _resolve(value) {
67
+ resolve(value);
68
+ done();
69
+ }, function _reject(err) {
70
+ reject(err);
71
+ done();
72
+ }, response);
73
+
74
+ // Clean up request
75
+ request = null;
76
+ }
77
+
78
+ if ('onloadend' in request) {
79
+ // Use onloadend if available
80
+ request.onloadend = onloadend;
81
+ } else {
82
+ // Listen for ready state to emulate onloadend
83
+ request.onreadystatechange = function handleLoad() {
84
+ if (!request || request.readyState !== 4) {
85
+ return;
86
+ }
87
+
88
+ // The request errored out and we didn't get a response, this will be
89
+ // handled by onerror instead
90
+ // With one exception: request that using file: protocol, most browsers
91
+ // will return status as 0 even though it's a successful request
92
+ if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {
93
+ return;
94
+ }
95
+ // readystate handler is calling before onerror or ontimeout handlers,
96
+ // so we should call onloadend on the next 'tick'
97
+ setTimeout(onloadend);
98
+ };
99
+ }
100
+
101
+ // Handle browser request cancellation (as opposed to a manual cancellation)
102
+ request.onabort = function handleAbort() {
103
+ if (!request) {
104
+ return;
105
+ }
106
+
107
+ reject(createError('Request aborted', config, 'ECONNABORTED', request));
108
+
109
+ // Clean up request
110
+ request = null;
111
+ };
112
+
113
+ // Handle low level network errors
114
+ request.onerror = function handleError() {
115
+ // Real errors are hidden from us by the browser
116
+ // onerror should only fire if it's a network error
117
+ reject(createError('Network Error', config, null, request));
118
+
119
+ // Clean up request
120
+ request = null;
121
+ };
122
+
123
+ // Handle timeout
124
+ request.ontimeout = function handleTimeout() {
125
+ var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';
126
+ var transitional = config.transitional || transitionalDefaults;
127
+ if (config.timeoutErrorMessage) {
128
+ timeoutErrorMessage = config.timeoutErrorMessage;
129
+ }
130
+ reject(createError(
131
+ timeoutErrorMessage,
132
+ config,
133
+ transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',
134
+ request));
135
+
136
+ // Clean up request
137
+ request = null;
138
+ };
139
+
140
+ // Add xsrf header
141
+ // This is only done if running in a standard browser environment.
142
+ // Specifically not if we're in a web worker, or react-native.
143
+ if (utils.isStandardBrowserEnv()) {
144
+ // Add xsrf header
145
+ var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?
146
+ cookies.read(config.xsrfCookieName) :
147
+ undefined;
148
+
149
+ if (xsrfValue) {
150
+ requestHeaders[config.xsrfHeaderName] = xsrfValue;
151
+ }
152
+ }
153
+
154
+ // Add headers to the request
155
+ if ('setRequestHeader' in request) {
156
+ utils.forEach(requestHeaders, function setRequestHeader(val, key) {
157
+ if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {
158
+ // Remove Content-Type if data is undefined
159
+ delete requestHeaders[key];
160
+ } else {
161
+ // Otherwise add header to the request
162
+ request.setRequestHeader(key, val);
163
+ }
164
+ });
165
+ }
166
+
167
+ // Add withCredentials to request if needed
168
+ if (!utils.isUndefined(config.withCredentials)) {
169
+ request.withCredentials = !!config.withCredentials;
170
+ }
171
+
172
+ // Add responseType to request if needed
173
+ if (responseType && responseType !== 'json') {
174
+ request.responseType = config.responseType;
175
+ }
176
+
177
+ // Handle progress if needed
178
+ if (typeof config.onDownloadProgress === 'function') {
179
+ request.addEventListener('progress', config.onDownloadProgress);
180
+ }
181
+
182
+ // Not all browsers support upload events
183
+ if (typeof config.onUploadProgress === 'function' && request.upload) {
184
+ request.upload.addEventListener('progress', config.onUploadProgress);
185
+ }
186
+
187
+ if (config.cancelToken || config.signal) {
188
+ // Handle cancellation
189
+ // eslint-disable-next-line func-names
190
+ onCanceled = function(cancel) {
191
+ if (!request) {
192
+ return;
193
+ }
194
+ reject(!cancel || (cancel && cancel.type) ? new Cancel('canceled') : cancel);
195
+ request.abort();
196
+ request = null;
197
+ };
198
+
199
+ config.cancelToken && config.cancelToken.subscribe(onCanceled);
200
+ if (config.signal) {
201
+ config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);
202
+ }
203
+ }
204
+
205
+ if (!requestData) {
206
+ requestData = null;
207
+ }
208
+
209
+ // Send the request
210
+ request.send(requestData);
211
+ });
212
+ };
node_modules/axios/lib/axios.js ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 'use strict';
2
+
3
+ var utils = require('./utils');
4
+ var bind = require('./helpers/bind');
5
+ var Axios = require('./core/Axios');
6
+ var mergeConfig = require('./core/mergeConfig');
7
+ var defaults = require('./defaults');
8
+
9
+ /**
10
+ * Create an instance of Axios
11
+ *
12
+ * @param {Object} defaultConfig The default config for the instance
13
+ * @return {Axios} A new instance of Axios
14
+ */
15
+ function createInstance(defaultConfig) {
16
+ var context = new Axios(defaultConfig);
17
+ var instance = bind(Axios.prototype.request, context);
18
+
19
+ // Copy axios.prototype to instance
20
+ utils.extend(instance, Axios.prototype, context);
21
+
22
+ // Copy context to instance
23
+ utils.extend(instance, context);
24
+
25
+ // Factory for creating new instances
26
+ instance.create = function create(instanceConfig) {
27
+ return createInstance(mergeConfig(defaultConfig, instanceConfig));
28
+ };
29
+
30
+ return instance;
31
+ }
32
+
33
+ // Create the default instance to be exported
34
+ var axios = createInstance(defaults);
35
+
36
+ // Expose Axios class to allow class inheritance
37
+ axios.Axios = Axios;
38
+
39
+ // Expose Cancel & CancelToken
40
+ axios.Cancel = require('./cancel/Cancel');
41
+ axios.CancelToken = require('./cancel/CancelToken');
42
+ axios.isCancel = require('./cancel/isCancel');
43
+ axios.VERSION = require('./env/data').version;
44
+
45
+ // Expose all/spread
46
+ axios.all = function all(promises) {
47
+ return Promise.all(promises);
48
+ };
49
+ axios.spread = require('./helpers/spread');
50
+
51
+ // Expose isAxiosError
52
+ axios.isAxiosError = require('./helpers/isAxiosError');
53
+
54
+ module.exports = axios;
55
+
56
+ // Allow use of default import syntax in TypeScript
57
+ module.exports.default = axios;
node_modules/axios/lib/cancel/Cancel.js ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 'use strict';
2
+
3
+ /**
4
+ * A `Cancel` is an object that is thrown when an operation is canceled.
5
+ *
6
+ * @class
7
+ * @param {string=} message The message.
8
+ */
9
+ function Cancel(message) {
10
+ this.message = message;
11
+ }
12
+
13
+ Cancel.prototype.toString = function toString() {
14
+ return 'Cancel' + (this.message ? ': ' + this.message : '');
15
+ };
16
+
17
+ Cancel.prototype.__CANCEL__ = true;
18
+
19
+ module.exports = Cancel;
node_modules/axios/lib/cancel/CancelToken.js ADDED
@@ -0,0 +1,119 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 'use strict';
2
+
3
+ var Cancel = require('./Cancel');
4
+
5
+ /**
6
+ * A `CancelToken` is an object that can be used to request cancellation of an operation.
7
+ *
8
+ * @class
9
+ * @param {Function} executor The executor function.
10
+ */
11
+ function CancelToken(executor) {
12
+ if (typeof executor !== 'function') {
13
+ throw new TypeError('executor must be a function.');
14
+ }
15
+
16
+ var resolvePromise;
17
+
18
+ this.promise = new Promise(function promiseExecutor(resolve) {
19
+ resolvePromise = resolve;
20
+ });
21
+
22
+ var token = this;
23
+
24
+ // eslint-disable-next-line func-names
25
+ this.promise.then(function(cancel) {
26
+ if (!token._listeners) return;
27
+
28
+ var i;
29
+ var l = token._listeners.length;
30
+
31
+ for (i = 0; i < l; i++) {
32
+ token._listeners[i](cancel);
33
+ }
34
+ token._listeners = null;
35
+ });
36
+
37
+ // eslint-disable-next-line func-names
38
+ this.promise.then = function(onfulfilled) {
39
+ var _resolve;
40
+ // eslint-disable-next-line func-names
41
+ var promise = new Promise(function(resolve) {
42
+ token.subscribe(resolve);
43
+ _resolve = resolve;
44
+ }).then(onfulfilled);
45
+
46
+ promise.cancel = function reject() {
47
+ token.unsubscribe(_resolve);
48
+ };
49
+
50
+ return promise;
51
+ };
52
+
53
+ executor(function cancel(message) {
54
+ if (token.reason) {
55
+ // Cancellation has already been requested
56
+ return;
57
+ }
58
+
59
+ token.reason = new Cancel(message);
60
+ resolvePromise(token.reason);
61
+ });
62
+ }
63
+
64
+ /**
65
+ * Throws a `Cancel` if cancellation has been requested.
66
+ */
67
+ CancelToken.prototype.throwIfRequested = function throwIfRequested() {
68
+ if (this.reason) {
69
+ throw this.reason;
70
+ }
71
+ };
72
+
73
+ /**
74
+ * Subscribe to the cancel signal
75
+ */
76
+
77
+ CancelToken.prototype.subscribe = function subscribe(listener) {
78
+ if (this.reason) {
79
+ listener(this.reason);
80
+ return;
81
+ }
82
+
83
+ if (this._listeners) {
84
+ this._listeners.push(listener);
85
+ } else {
86
+ this._listeners = [listener];
87
+ }
88
+ };
89
+
90
+ /**
91
+ * Unsubscribe from the cancel signal
92
+ */
93
+
94
+ CancelToken.prototype.unsubscribe = function unsubscribe(listener) {
95
+ if (!this._listeners) {
96
+ return;
97
+ }
98
+ var index = this._listeners.indexOf(listener);
99
+ if (index !== -1) {
100
+ this._listeners.splice(index, 1);
101
+ }
102
+ };
103
+
104
+ /**
105
+ * Returns an object that contains a new `CancelToken` and a function that, when called,
106
+ * cancels the `CancelToken`.
107
+ */
108
+ CancelToken.source = function source() {
109
+ var cancel;
110
+ var token = new CancelToken(function executor(c) {
111
+ cancel = c;
112
+ });
113
+ return {
114
+ token: token,
115
+ cancel: cancel
116
+ };
117
+ };
118
+
119
+ module.exports = CancelToken;
node_modules/axios/lib/cancel/isCancel.js ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ 'use strict';
2
+
3
+ module.exports = function isCancel(value) {
4
+ return !!(value && value.__CANCEL__);
5
+ };
node_modules/axios/lib/core/Axios.js ADDED
@@ -0,0 +1,148 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 'use strict';
2
+
3
+ var utils = require('./../utils');
4
+ var buildURL = require('../helpers/buildURL');
5
+ var InterceptorManager = require('./InterceptorManager');
6
+ var dispatchRequest = require('./dispatchRequest');
7
+ var mergeConfig = require('./mergeConfig');
8
+ var validator = require('../helpers/validator');
9
+
10
+ var validators = validator.validators;
11
+ /**
12
+ * Create a new instance of Axios
13
+ *
14
+ * @param {Object} instanceConfig The default config for the instance
15
+ */
16
+ function Axios(instanceConfig) {
17
+ this.defaults = instanceConfig;
18
+ this.interceptors = {
19
+ request: new InterceptorManager(),
20
+ response: new InterceptorManager()
21
+ };
22
+ }
23
+
24
+ /**
25
+ * Dispatch a request
26
+ *
27
+ * @param {Object} config The config specific for this request (merged with this.defaults)
28
+ */
29
+ Axios.prototype.request = function request(configOrUrl, config) {
30
+ /*eslint no-param-reassign:0*/
31
+ // Allow for axios('example/url'[, config]) a la fetch API
32
+ if (typeof configOrUrl === 'string') {
33
+ config = config || {};
34
+ config.url = configOrUrl;
35
+ } else {
36
+ config = configOrUrl || {};
37
+ }
38
+
39
+ config = mergeConfig(this.defaults, config);
40
+
41
+ // Set config.method
42
+ if (config.method) {
43
+ config.method = config.method.toLowerCase();
44
+ } else if (this.defaults.method) {
45
+ config.method = this.defaults.method.toLowerCase();
46
+ } else {
47
+ config.method = 'get';
48
+ }
49
+
50
+ var transitional = config.transitional;
51
+
52
+ if (transitional !== undefined) {
53
+ validator.assertOptions(transitional, {
54
+ silentJSONParsing: validators.transitional(validators.boolean),
55
+ forcedJSONParsing: validators.transitional(validators.boolean),
56
+ clarifyTimeoutError: validators.transitional(validators.boolean)
57
+ }, false);
58
+ }
59
+
60
+ // filter out skipped interceptors
61
+ var requestInterceptorChain = [];
62
+ var synchronousRequestInterceptors = true;
63
+ this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {
64
+ if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {
65
+ return;
66
+ }
67
+
68
+ synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;
69
+
70
+ requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);
71
+ });
72
+
73
+ var responseInterceptorChain = [];
74
+ this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {
75
+ responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);
76
+ });
77
+
78
+ var promise;
79
+
80
+ if (!synchronousRequestInterceptors) {
81
+ var chain = [dispatchRequest, undefined];
82
+
83
+ Array.prototype.unshift.apply(chain, requestInterceptorChain);
84
+ chain = chain.concat(responseInterceptorChain);
85
+
86
+ promise = Promise.resolve(config);
87
+ while (chain.length) {
88
+ promise = promise.then(chain.shift(), chain.shift());
89
+ }
90
+
91
+ return promise;
92
+ }
93
+
94
+
95
+ var newConfig = config;
96
+ while (requestInterceptorChain.length) {
97
+ var onFulfilled = requestInterceptorChain.shift();
98
+ var onRejected = requestInterceptorChain.shift();
99
+ try {
100
+ newConfig = onFulfilled(newConfig);
101
+ } catch (error) {
102
+ onRejected(error);
103
+ break;
104
+ }
105
+ }
106
+
107
+ try {
108
+ promise = dispatchRequest(newConfig);
109
+ } catch (error) {
110
+ return Promise.reject(error);
111
+ }
112
+
113
+ while (responseInterceptorChain.length) {
114
+ promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());
115
+ }
116
+
117
+ return promise;
118
+ };
119
+
120
+ Axios.prototype.getUri = function getUri(config) {
121
+ config = mergeConfig(this.defaults, config);
122
+ return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\?/, '');
123
+ };
124
+
125
+ // Provide aliases for supported request methods
126
+ utils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {
127
+ /*eslint func-names:0*/
128
+ Axios.prototype[method] = function(url, config) {
129
+ return this.request(mergeConfig(config || {}, {
130
+ method: method,
131
+ url: url,
132
+ data: (config || {}).data
133
+ }));
134
+ };
135
+ });
136
+
137
+ utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {
138
+ /*eslint func-names:0*/
139
+ Axios.prototype[method] = function(url, data, config) {
140
+ return this.request(mergeConfig(config || {}, {
141
+ method: method,
142
+ url: url,
143
+ data: data
144
+ }));
145
+ };
146
+ });
147
+
148
+ module.exports = Axios;
node_modules/axios/lib/core/InterceptorManager.js ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 'use strict';
2
+
3
+ var utils = require('./../utils');
4
+
5
+ function InterceptorManager() {
6
+ this.handlers = [];
7
+ }
8
+
9
+ /**
10
+ * Add a new interceptor to the stack
11
+ *
12
+ * @param {Function} fulfilled The function to handle `then` for a `Promise`
13
+ * @param {Function} rejected The function to handle `reject` for a `Promise`
14
+ *
15
+ * @return {Number} An ID used to remove interceptor later
16
+ */
17
+ InterceptorManager.prototype.use = function use(fulfilled, rejected, options) {
18
+ this.handlers.push({
19
+ fulfilled: fulfilled,
20
+ rejected: rejected,
21
+ synchronous: options ? options.synchronous : false,
22
+ runWhen: options ? options.runWhen : null
23
+ });
24
+ return this.handlers.length - 1;
25
+ };
26
+
27
+ /**
28
+ * Remove an interceptor from the stack
29
+ *
30
+ * @param {Number} id The ID that was returned by `use`
31
+ */
32
+ InterceptorManager.prototype.eject = function eject(id) {
33
+ if (this.handlers[id]) {
34
+ this.handlers[id] = null;
35
+ }
36
+ };
37
+
38
+ /**
39
+ * Iterate over all the registered interceptors
40
+ *
41
+ * This method is particularly useful for skipping over any
42
+ * interceptors that may have become `null` calling `eject`.
43
+ *
44
+ * @param {Function} fn The function to call for each interceptor
45
+ */
46
+ InterceptorManager.prototype.forEach = function forEach(fn) {
47
+ utils.forEach(this.handlers, function forEachHandler(h) {
48
+ if (h !== null) {
49
+ fn(h);
50
+ }
51
+ });
52
+ };
53
+
54
+ module.exports = InterceptorManager;
node_modules/axios/lib/core/README.md ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ # axios // core
2
+
3
+ The modules found in `core/` should be modules that are specific to the domain logic of axios. These modules would most likely not make sense to be consumed outside of the axios module, as their logic is too specific. Some examples of core modules are:
4
+
5
+ - Dispatching requests
6
+ - Requests sent via `adapters/` (see lib/adapters/README.md)
7
+ - Managing interceptors
8
+ - Handling config
node_modules/axios/lib/core/buildFullPath.js ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 'use strict';
2
+
3
+ var isAbsoluteURL = require('../helpers/isAbsoluteURL');
4
+ var combineURLs = require('../helpers/combineURLs');
5
+
6
+ /**
7
+ * Creates a new URL by combining the baseURL with the requestedURL,
8
+ * only when the requestedURL is not already an absolute URL.
9
+ * If the requestURL is absolute, this function returns the requestedURL untouched.
10
+ *
11
+ * @param {string} baseURL The base URL
12
+ * @param {string} requestedURL Absolute or relative URL to combine
13
+ * @returns {string} The combined full path
14
+ */
15
+ module.exports = function buildFullPath(baseURL, requestedURL) {
16
+ if (baseURL && !isAbsoluteURL(requestedURL)) {
17
+ return combineURLs(baseURL, requestedURL);
18
+ }
19
+ return requestedURL;
20
+ };
node_modules/axios/lib/core/createError.js ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 'use strict';
2
+
3
+ var enhanceError = require('./enhanceError');
4
+
5
+ /**
6
+ * Create an Error with the specified message, config, error code, request and response.
7
+ *
8
+ * @param {string} message The error message.
9
+ * @param {Object} config The config.
10
+ * @param {string} [code] The error code (for example, 'ECONNABORTED').
11
+ * @param {Object} [request] The request.
12
+ * @param {Object} [response] The response.
13
+ * @returns {Error} The created error.
14
+ */
15
+ module.exports = function createError(message, config, code, request, response) {
16
+ var error = new Error(message);
17
+ return enhanceError(error, config, code, request, response);
18
+ };
node_modules/axios/lib/core/dispatchRequest.js ADDED
@@ -0,0 +1,87 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 'use strict';
2
+
3
+ var utils = require('./../utils');
4
+ var transformData = require('./transformData');
5
+ var isCancel = require('../cancel/isCancel');
6
+ var defaults = require('../defaults');
7
+ var Cancel = require('../cancel/Cancel');
8
+
9
+ /**
10
+ * Throws a `Cancel` if cancellation has been requested.
11
+ */
12
+ function throwIfCancellationRequested(config) {
13
+ if (config.cancelToken) {
14
+ config.cancelToken.throwIfRequested();
15
+ }
16
+
17
+ if (config.signal && config.signal.aborted) {
18
+ throw new Cancel('canceled');
19
+ }
20
+ }
21
+
22
+ /**
23
+ * Dispatch a request to the server using the configured adapter.
24
+ *
25
+ * @param {object} config The config that is to be used for the request
26
+ * @returns {Promise} The Promise to be fulfilled
27
+ */
28
+ module.exports = function dispatchRequest(config) {
29
+ throwIfCancellationRequested(config);
30
+
31
+ // Ensure headers exist
32
+ config.headers = config.headers || {};
33
+
34
+ // Transform request data
35
+ config.data = transformData.call(
36
+ config,
37
+ config.data,
38
+ config.headers,
39
+ config.transformRequest
40
+ );
41
+
42
+ // Flatten headers
43
+ config.headers = utils.merge(
44
+ config.headers.common || {},
45
+ config.headers[config.method] || {},
46
+ config.headers
47
+ );
48
+
49
+ utils.forEach(
50
+ ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],
51
+ function cleanHeaderConfig(method) {
52
+ delete config.headers[method];
53
+ }
54
+ );
55
+
56
+ var adapter = config.adapter || defaults.adapter;
57
+
58
+ return adapter(config).then(function onAdapterResolution(response) {
59
+ throwIfCancellationRequested(config);
60
+
61
+ // Transform response data
62
+ response.data = transformData.call(
63
+ config,
64
+ response.data,
65
+ response.headers,
66
+ config.transformResponse
67
+ );
68
+
69
+ return response;
70
+ }, function onAdapterRejection(reason) {
71
+ if (!isCancel(reason)) {
72
+ throwIfCancellationRequested(config);
73
+
74
+ // Transform response data
75
+ if (reason && reason.response) {
76
+ reason.response.data = transformData.call(
77
+ config,
78
+ reason.response.data,
79
+ reason.response.headers,
80
+ config.transformResponse
81
+ );
82
+ }
83
+ }
84
+
85
+ return Promise.reject(reason);
86
+ });
87
+ };
node_modules/axios/lib/core/enhanceError.js ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 'use strict';
2
+
3
+ /**
4
+ * Update an Error with the specified config, error code, and response.
5
+ *
6
+ * @param {Error} error The error to update.
7
+ * @param {Object} config The config.
8
+ * @param {string} [code] The error code (for example, 'ECONNABORTED').
9
+ * @param {Object} [request] The request.
10
+ * @param {Object} [response] The response.
11
+ * @returns {Error} The error.
12
+ */
13
+ module.exports = function enhanceError(error, config, code, request, response) {
14
+ error.config = config;
15
+ if (code) {
16
+ error.code = code;
17
+ }
18
+
19
+ error.request = request;
20
+ error.response = response;
21
+ error.isAxiosError = true;
22
+
23
+ error.toJSON = function toJSON() {
24
+ return {
25
+ // Standard
26
+ message: this.message,
27
+ name: this.name,
28
+ // Microsoft
29
+ description: this.description,
30
+ number: this.number,
31
+ // Mozilla
32
+ fileName: this.fileName,
33
+ lineNumber: this.lineNumber,
34
+ columnNumber: this.columnNumber,
35
+ stack: this.stack,
36
+ // Axios
37
+ config: this.config,
38
+ code: this.code,
39
+ status: this.response && this.response.status ? this.response.status : null
40
+ };
41
+ };
42
+ return error;
43
+ };