axios 0.27.2 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of axios might be problematic. Click here for more details.
- package/CHANGELOG.md +178 -940
- package/LICENSE +4 -16
- package/README.md +292 -93
- package/SECURITY.md +4 -3
- package/UPGRADE_GUIDE.md +1 -166
- package/bin/ssl_hotfix.js +22 -0
- package/dist/axios.js +2537 -2211
- package/dist/axios.js.map +1 -0
- package/dist/axios.min.js +2 -3
- package/dist/axios.min.js.map +1 -0
- package/dist/esm/axios.js +2942 -0
- package/dist/esm/axios.js.map +1 -0
- package/dist/esm/axios.min.js +2 -0
- package/dist/esm/axios.min.js.map +1 -0
- package/dist/node/axios.cjs +3750 -0
- package/dist/node/axios.cjs.map +1 -0
- package/gulpfile.js +88 -0
- package/index.d.ts +293 -70
- package/index.js +2 -1
- package/karma.conf.cjs +250 -0
- package/lib/adapters/http.js +371 -212
- package/lib/adapters/index.js +33 -0
- package/lib/adapters/xhr.js +81 -57
- package/lib/axios.js +34 -22
- package/lib/cancel/CancelToken.js +91 -89
- package/lib/cancel/CanceledError.js +9 -6
- package/lib/cancel/isCancel.js +2 -2
- package/lib/core/Axios.js +127 -99
- package/lib/core/AxiosError.js +22 -8
- package/lib/core/AxiosHeaders.js +274 -0
- package/lib/core/InterceptorManager.js +62 -45
- package/lib/core/buildFullPath.js +5 -4
- package/lib/core/dispatchRequest.js +21 -32
- package/lib/core/mergeConfig.js +8 -7
- package/lib/core/settle.js +6 -4
- package/lib/core/transformData.js +15 -9
- package/lib/defaults/index.js +77 -38
- package/lib/defaults/transitional.js +1 -1
- package/lib/env/classes/FormData.js +2 -0
- package/lib/env/data.js +1 -3
- package/lib/helpers/AxiosTransformStream.js +191 -0
- package/lib/helpers/AxiosURLSearchParams.js +58 -0
- package/lib/helpers/bind.js +3 -7
- package/lib/helpers/buildURL.js +24 -38
- package/lib/helpers/combineURLs.js +3 -2
- package/lib/helpers/cookies.js +43 -44
- package/lib/helpers/deprecatedMethod.js +4 -2
- package/lib/helpers/formDataToJSON.js +92 -0
- package/lib/helpers/fromDataURI.js +53 -0
- package/lib/helpers/isAbsoluteURL.js +3 -2
- package/lib/helpers/isAxiosError.js +4 -3
- package/lib/helpers/isURLSameOrigin.js +44 -45
- package/lib/helpers/null.js +1 -1
- package/lib/helpers/parseHeaders.js +24 -22
- package/lib/helpers/parseProtocol.js +3 -3
- package/lib/helpers/speedometer.js +55 -0
- package/lib/helpers/spread.js +3 -2
- package/lib/helpers/throttle.js +33 -0
- package/lib/helpers/toFormData.js +193 -36
- package/lib/helpers/toURLEncodedForm.js +18 -0
- package/lib/helpers/validator.js +20 -15
- package/lib/platform/browser/classes/FormData.js +3 -0
- package/lib/platform/browser/classes/URLSearchParams.js +4 -0
- package/lib/platform/browser/index.js +43 -0
- package/lib/platform/index.js +3 -0
- package/lib/platform/node/classes/FormData.js +3 -0
- package/lib/platform/node/classes/URLSearchParams.js +4 -0
- package/lib/platform/node/index.js +12 -0
- package/lib/utils.js +320 -177
- package/package.json +69 -23
- package/rollup.config.js +90 -0
- package/dist/axios.map +0 -1
- package/dist/axios.min.map +0 -1
- package/lib/defaults/env/FormData.js +0 -2
- package/lib/helpers/normalizeHeaderName.js +0 -12
package/karma.conf.cjs
ADDED
@@ -0,0 +1,250 @@
|
|
1
|
+
/* eslint-disable no-console */
|
2
|
+
/* eslint-disable no-unused-vars */
|
3
|
+
/* eslint-disable func-names */
|
4
|
+
// Karma configuration
|
5
|
+
// Generated on Fri Aug 15 2014 23:11:13 GMT-0500 (CDT)
|
6
|
+
|
7
|
+
'use strict';
|
8
|
+
|
9
|
+
var resolve = require('@rollup/plugin-node-resolve').default;
|
10
|
+
var commonjs = require('@rollup/plugin-commonjs');
|
11
|
+
|
12
|
+
function createCustomLauncher(browser, version, platform) {
|
13
|
+
return {
|
14
|
+
base: 'SauceLabs',
|
15
|
+
browserName: browser,
|
16
|
+
version: version,
|
17
|
+
platform: platform
|
18
|
+
};
|
19
|
+
}
|
20
|
+
|
21
|
+
module.exports = function(config) {
|
22
|
+
var customLaunchers = {};
|
23
|
+
var browsers = process.env.Browsers && process.env.Browsers.split(',');
|
24
|
+
var sauceLabs;
|
25
|
+
|
26
|
+
if (process.env.SAUCE_USERNAME || process.env.SAUCE_ACCESS_KEY) {
|
27
|
+
customLaunchers = {};
|
28
|
+
|
29
|
+
var runAll = true;
|
30
|
+
var options = [
|
31
|
+
'SAUCE_CHROME',
|
32
|
+
'SAUCE_FIREFOX',
|
33
|
+
'SAUCE_SAFARI',
|
34
|
+
'SAUCE_OPERA',
|
35
|
+
'SAUCE_IE',
|
36
|
+
'SAUCE_EDGE',
|
37
|
+
'SAUCE_IOS',
|
38
|
+
'SAUCE_ANDROID'
|
39
|
+
];
|
40
|
+
|
41
|
+
options.forEach(function(opt) {
|
42
|
+
if (process.env[opt]) {
|
43
|
+
runAll = false;
|
44
|
+
}
|
45
|
+
});
|
46
|
+
|
47
|
+
// Chrome
|
48
|
+
if (runAll || process.env.SAUCE_CHROME) {
|
49
|
+
customLaunchers.SL_Chrome = createCustomLauncher('chrome');
|
50
|
+
// customLaunchers.SL_ChromeDev = createCustomLauncher('chrome', 'dev');
|
51
|
+
// customLaunchers.SL_ChromeBeta = createCustomLauncher('chrome', 'beta');
|
52
|
+
}
|
53
|
+
|
54
|
+
// Firefox
|
55
|
+
if (runAll || process.env.SAUCE_FIREFOX) {
|
56
|
+
//customLaunchers.SL_Firefox = createCustomLauncher('firefox');
|
57
|
+
// customLaunchers.SL_FirefoxDev = createCustomLauncher('firefox', 'dev');
|
58
|
+
// customLaunchers.SL_FirefoxBeta = createCustomLauncher('firefox', 'beta');
|
59
|
+
}
|
60
|
+
|
61
|
+
// Safari
|
62
|
+
if (runAll || process.env.SAUCE_SAFARI) {
|
63
|
+
// customLaunchers.SL_Safari7 = createCustomLauncher('safari', 7);
|
64
|
+
// customLaunchers.SL_Safari8 = createCustomLauncher('safari', 8);
|
65
|
+
customLaunchers.SL_Safari9 = createCustomLauncher(
|
66
|
+
'safari',
|
67
|
+
9.0,
|
68
|
+
'OS X 10.11'
|
69
|
+
);
|
70
|
+
customLaunchers.SL_Safari10 = createCustomLauncher(
|
71
|
+
'safari',
|
72
|
+
'10.1',
|
73
|
+
'macOS 10.12'
|
74
|
+
);
|
75
|
+
customLaunchers.SL_Safari11 = createCustomLauncher(
|
76
|
+
'safari',
|
77
|
+
'11.1',
|
78
|
+
'macOS 10.13'
|
79
|
+
);
|
80
|
+
}
|
81
|
+
|
82
|
+
// Opera
|
83
|
+
if (runAll || process.env.SAUCE_OPERA) {
|
84
|
+
// TODO The available versions of Opera are too old and lack basic APIs
|
85
|
+
// customLaunchers.SL_Opera11 = createCustomLauncher('opera', 11, 'Windows XP');
|
86
|
+
// customLaunchers.SL_Opera12 = createCustomLauncher('opera', 12, 'Windows 7');
|
87
|
+
}
|
88
|
+
|
89
|
+
// IE
|
90
|
+
if (runAll || process.env.SAUCE_IE) {
|
91
|
+
customLaunchers.SL_IE11 = createCustomLauncher('internet explorer', 11, 'Windows 8.1');
|
92
|
+
}
|
93
|
+
|
94
|
+
// Edge
|
95
|
+
if (runAll || process.env.SAUCE_EDGE) {
|
96
|
+
customLaunchers.SL_Edge = createCustomLauncher('microsoftedge', null, 'Windows 10');
|
97
|
+
}
|
98
|
+
|
99
|
+
// IOS
|
100
|
+
if (runAll || process.env.SAUCE_IOS) {
|
101
|
+
// TODO IOS7 capture always timesout
|
102
|
+
// customLaunchers.SL_IOS7 = createCustomLauncher('iphone', '7.1', 'OS X 10.10');
|
103
|
+
// TODO Mobile browsers are causing failures, possibly from too many concurrent VMs
|
104
|
+
// customLaunchers.SL_IOS8 = createCustomLauncher('iphone', '8.4', 'OS X 10.10');
|
105
|
+
// customLaunchers.SL_IOS9 = createCustomLauncher('iphone', '9.2', 'OS X 10.10');
|
106
|
+
}
|
107
|
+
|
108
|
+
// Android
|
109
|
+
if (runAll || process.env.SAUCE_ANDROID) {
|
110
|
+
// TODO Mobile browsers are causing failures, possibly from too many concurrent VMs
|
111
|
+
// customLaunchers.SL_Android4 = createCustomLauncher('android', '4.4', 'Linux');
|
112
|
+
// customLaunchers.SL_Android5 = createCustomLauncher('android', '5.1', 'Linux');
|
113
|
+
}
|
114
|
+
|
115
|
+
browsers = Object.keys(customLaunchers);
|
116
|
+
|
117
|
+
sauceLabs = {
|
118
|
+
recordScreenshots: false,
|
119
|
+
connectOptions: {
|
120
|
+
// port: 5757,
|
121
|
+
logfile: 'sauce_connect.log'
|
122
|
+
},
|
123
|
+
public: 'public'
|
124
|
+
};
|
125
|
+
} else if (process.env.TRAVIS_PULL_REQUEST && process.env.TRAVIS_PULL_REQUEST !== 'false') {
|
126
|
+
console.log(
|
127
|
+
'Cannot run on Sauce Labs as encrypted environment variables are not available to PRs. ' +
|
128
|
+
'Running on Travis.'
|
129
|
+
);
|
130
|
+
browsers = ['Firefox'];
|
131
|
+
} else if (process.env.GITHUB_ACTIONS === 'true') {
|
132
|
+
console.log('Running ci on Github Actions.');
|
133
|
+
browsers = ['FirefoxHeadless', 'ChromeHeadless'];
|
134
|
+
} else {
|
135
|
+
browsers = browsers || ['Chrome'];
|
136
|
+
console.log(`Running ${browsers} locally since SAUCE_USERNAME and SAUCE_ACCESS_KEY environment variables are not set.`);
|
137
|
+
}
|
138
|
+
|
139
|
+
config.set({
|
140
|
+
// base path that will be used to resolve all patterns (eg. files, exclude)
|
141
|
+
basePath: '',
|
142
|
+
|
143
|
+
|
144
|
+
// frameworks to use
|
145
|
+
// available frameworks: https://npmjs.org/browse/keyword/karma-adapter
|
146
|
+
frameworks: ['jasmine-ajax', 'jasmine', 'sinon'],
|
147
|
+
|
148
|
+
|
149
|
+
// list of files / patterns to load in the browser
|
150
|
+
files: [
|
151
|
+
{pattern: 'test/specs/__helpers.js', watched: false},
|
152
|
+
{pattern: 'test/specs/**/*.spec.js', watched: false}
|
153
|
+
],
|
154
|
+
|
155
|
+
|
156
|
+
// list of files to exclude
|
157
|
+
exclude: [],
|
158
|
+
|
159
|
+
|
160
|
+
// preprocess matching files before serving them to the browser
|
161
|
+
// available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
|
162
|
+
preprocessors: {
|
163
|
+
'test/specs/__helpers.js': ['rollup'],
|
164
|
+
'test/specs/**/*.spec.js': ['rollup']
|
165
|
+
},
|
166
|
+
|
167
|
+
rollupPreprocessor: {
|
168
|
+
plugins: [
|
169
|
+
resolve({browser: true}),
|
170
|
+
commonjs()
|
171
|
+
],
|
172
|
+
output: {
|
173
|
+
format: 'iife',
|
174
|
+
name: '_axios',
|
175
|
+
sourcemap: 'inline'
|
176
|
+
}
|
177
|
+
},
|
178
|
+
|
179
|
+
|
180
|
+
// test results reporter to use
|
181
|
+
// possible values: 'dots', 'progress'
|
182
|
+
// available reporters: https://npmjs.org/browse/keyword/karma-reporter
|
183
|
+
// Disable code coverage, as it's breaking CI:
|
184
|
+
// reporters: ['dots', 'coverage', 'saucelabs'],
|
185
|
+
reporters: ['progress'],
|
186
|
+
|
187
|
+
|
188
|
+
// web server port
|
189
|
+
port: 9876,
|
190
|
+
|
191
|
+
|
192
|
+
// Increase timeouts to prevent the issue with disconnected tests (https://goo.gl/nstA69)
|
193
|
+
captureTimeout: 4 * 60 * 1000,
|
194
|
+
browserDisconnectTimeout: 10000,
|
195
|
+
browserDisconnectTolerance: 1,
|
196
|
+
browserNoActivityTimeout: 4 * 60 * 1000,
|
197
|
+
|
198
|
+
|
199
|
+
// enable / disable colors in the output (reporters and logs)
|
200
|
+
colors: true,
|
201
|
+
|
202
|
+
|
203
|
+
// level of logging
|
204
|
+
// possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
|
205
|
+
logLevel: config.LOG_INFO,
|
206
|
+
|
207
|
+
|
208
|
+
// enable / disable watching file and executing tests whenever any file changes
|
209
|
+
autoWatch: false,
|
210
|
+
|
211
|
+
|
212
|
+
// start these browsers
|
213
|
+
// available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
|
214
|
+
browsers: browsers,
|
215
|
+
|
216
|
+
|
217
|
+
// Continuous Integration mode
|
218
|
+
// if true, Karma captures browsers, runs the tests and exits
|
219
|
+
singleRun: false,
|
220
|
+
|
221
|
+
// Webpack config
|
222
|
+
webpack: {
|
223
|
+
mode: 'development',
|
224
|
+
cache: true,
|
225
|
+
devtool: 'inline-source-map',
|
226
|
+
externals: [
|
227
|
+
{
|
228
|
+
'./adapters/http': 'var undefined'
|
229
|
+
}
|
230
|
+
]
|
231
|
+
},
|
232
|
+
|
233
|
+
webpackServer: {
|
234
|
+
stats: {
|
235
|
+
colors: true
|
236
|
+
}
|
237
|
+
},
|
238
|
+
|
239
|
+
|
240
|
+
// Coverage reporting
|
241
|
+
coverageReporter: {
|
242
|
+
type: 'lcov',
|
243
|
+
dir: 'coverage/',
|
244
|
+
subdir: '.'
|
245
|
+
},
|
246
|
+
|
247
|
+
sauceLabs: sauceLabs,
|
248
|
+
customLaunchers: customLaunchers
|
249
|
+
});
|
250
|
+
};
|