axios 1.7.6 → 1.7.8
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 +51 -0
- package/README.md +20 -8
- package/dist/axios.js +129 -129
- package/dist/axios.js.map +1 -1
- package/dist/axios.min.js +1 -1
- package/dist/axios.min.js.map +1 -1
- package/dist/browser/axios.cjs +67 -78
- package/dist/browser/axios.cjs.map +1 -1
- package/dist/esm/axios.js +67 -78
- package/dist/esm/axios.js.map +1 -1
- package/dist/esm/axios.min.js +1 -1
- package/dist/esm/axios.min.js.map +1 -1
- package/dist/node/axios.cjs +73 -83
- package/dist/node/axios.cjs.map +1 -1
- package/index.d.cts +38 -29
- package/index.d.ts +75 -561
- package/lib/adapters/fetch.js +2 -2
- package/lib/adapters/http.js +5 -5
- package/lib/core/Axios.js +7 -2
- package/lib/core/mergeConfig.js +5 -5
- package/lib/env/data.js +1 -1
- package/lib/helpers/buildURL.js +7 -1
- package/lib/helpers/formDataToStream.js +2 -2
- package/lib/helpers/isURLSameOrigin.js +12 -65
- package/lib/helpers/trackStream.js +25 -5
- package/lib/helpers/validator.js +8 -0
- package/package.json +3 -3
package/dist/node/axios.cjs
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
// Axios v1.7.
|
1
|
+
// Axios v1.7.8 Copyright (c) 2024 Matt Zabriskie and contributors
|
2
2
|
'use strict';
|
3
3
|
|
4
4
|
const FormData$1 = require('form-data');
|
@@ -16,6 +16,7 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
|
|
16
16
|
|
17
17
|
const FormData__default = /*#__PURE__*/_interopDefaultLegacy(FormData$1);
|
18
18
|
const url__default = /*#__PURE__*/_interopDefaultLegacy(url);
|
19
|
+
const proxyFromEnv__default = /*#__PURE__*/_interopDefaultLegacy(proxyFromEnv);
|
19
20
|
const http__default = /*#__PURE__*/_interopDefaultLegacy(http);
|
20
21
|
const https__default = /*#__PURE__*/_interopDefaultLegacy(https);
|
21
22
|
const util__default = /*#__PURE__*/_interopDefaultLegacy(util);
|
@@ -1171,7 +1172,7 @@ function encode(val) {
|
|
1171
1172
|
*
|
1172
1173
|
* @param {string} url The base of the url (e.g., http://www.google.com)
|
1173
1174
|
* @param {object} [params] The params to be appended
|
1174
|
-
* @param {?object} options
|
1175
|
+
* @param {?(object|Function)} options
|
1175
1176
|
*
|
1176
1177
|
* @returns {string} The formatted url
|
1177
1178
|
*/
|
@@ -1183,6 +1184,12 @@ function buildURL(url, params, options) {
|
|
1183
1184
|
|
1184
1185
|
const _encode = options && options.encode || encode;
|
1185
1186
|
|
1187
|
+
if (utils$1.isFunction(options)) {
|
1188
|
+
options = {
|
1189
|
+
serialize: options
|
1190
|
+
};
|
1191
|
+
}
|
1192
|
+
|
1186
1193
|
const serializeFn = options && options.serialize;
|
1187
1194
|
|
1188
1195
|
let serializedParams;
|
@@ -2071,7 +2078,7 @@ function buildFullPath(baseURL, requestedURL) {
|
|
2071
2078
|
return requestedURL;
|
2072
2079
|
}
|
2073
2080
|
|
2074
|
-
const VERSION = "1.7.
|
2081
|
+
const VERSION = "1.7.8";
|
2075
2082
|
|
2076
2083
|
function parseProtocol(url) {
|
2077
2084
|
const match = /^([-+\w]{1,25})(:?\/\/|:)/.exec(url);
|
@@ -2283,7 +2290,7 @@ const readBlob$1 = readBlob;
|
|
2283
2290
|
|
2284
2291
|
const BOUNDARY_ALPHABET = utils$1.ALPHABET.ALPHA_DIGIT + '-_';
|
2285
2292
|
|
2286
|
-
const textEncoder = new
|
2293
|
+
const textEncoder = typeof TextEncoder === 'function' ? new TextEncoder() : new util__default["default"].TextEncoder();
|
2287
2294
|
|
2288
2295
|
const CRLF = '\r\n';
|
2289
2296
|
const CRLF_BYTES = textEncoder.encode(CRLF);
|
@@ -2621,7 +2628,7 @@ function dispatchBeforeRedirect(options, responseDetails) {
|
|
2621
2628
|
function setProxy(options, configProxy, location) {
|
2622
2629
|
let proxy = configProxy;
|
2623
2630
|
if (!proxy && proxy !== false) {
|
2624
|
-
const proxyUrl =
|
2631
|
+
const proxyUrl = proxyFromEnv__default["default"].getProxyForUrl(location);
|
2625
2632
|
if (proxyUrl) {
|
2626
2633
|
proxy = new URL(proxyUrl);
|
2627
2634
|
}
|
@@ -2852,7 +2859,7 @@ const httpAdapter = isHttpAdapterSupported && function httpAdapter(config) {
|
|
2852
2859
|
} catch (e) {
|
2853
2860
|
}
|
2854
2861
|
}
|
2855
|
-
} else if (utils$1.isBlob(data)) {
|
2862
|
+
} else if (utils$1.isBlob(data) || utils$1.isFile(data)) {
|
2856
2863
|
data.size && headers.setContentType(data.type || 'application/octet-stream');
|
2857
2864
|
headers.setContentLength(data.size || 0);
|
2858
2865
|
data = stream__default["default"].Readable.from(readBlob$1(data));
|
@@ -2963,7 +2970,7 @@ const httpAdapter = isHttpAdapterSupported && function httpAdapter(config) {
|
|
2963
2970
|
if (config.socketPath) {
|
2964
2971
|
options.socketPath = config.socketPath;
|
2965
2972
|
} else {
|
2966
|
-
options.hostname = parsed.hostname;
|
2973
|
+
options.hostname = parsed.hostname.startsWith("[") ? parsed.hostname.slice(1, -1) : parsed.hostname;
|
2967
2974
|
options.port = parsed.port;
|
2968
2975
|
setProxy(options, config.proxy, protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path);
|
2969
2976
|
}
|
@@ -3105,7 +3112,7 @@ const httpAdapter = isHttpAdapterSupported && function httpAdapter(config) {
|
|
3105
3112
|
}
|
3106
3113
|
|
3107
3114
|
const err = new AxiosError(
|
3108
|
-
'
|
3115
|
+
'stream has been aborted',
|
3109
3116
|
AxiosError.ERR_BAD_RESPONSE,
|
3110
3117
|
config,
|
3111
3118
|
lastRequest
|
@@ -3228,68 +3235,18 @@ const httpAdapter = isHttpAdapterSupported && function httpAdapter(config) {
|
|
3228
3235
|
});
|
3229
3236
|
};
|
3230
3237
|
|
3231
|
-
const isURLSameOrigin = platform.hasStandardBrowserEnv ?
|
3232
|
-
|
3233
|
-
// Standard browser envs have full support of the APIs needed to test
|
3234
|
-
// whether the request URL is of the same origin as current location.
|
3235
|
-
(function standardBrowserEnv() {
|
3236
|
-
const msie = platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent);
|
3237
|
-
const urlParsingNode = document.createElement('a');
|
3238
|
-
let originURL;
|
3239
|
-
|
3240
|
-
/**
|
3241
|
-
* Parse a URL to discover its components
|
3242
|
-
*
|
3243
|
-
* @param {String} url The URL to be parsed
|
3244
|
-
* @returns {Object}
|
3245
|
-
*/
|
3246
|
-
function resolveURL(url) {
|
3247
|
-
let href = url;
|
3248
|
-
|
3249
|
-
if (msie) {
|
3250
|
-
// IE needs attribute set twice to normalize properties
|
3251
|
-
urlParsingNode.setAttribute('href', href);
|
3252
|
-
href = urlParsingNode.href;
|
3253
|
-
}
|
3254
|
-
|
3255
|
-
urlParsingNode.setAttribute('href', href);
|
3256
|
-
|
3257
|
-
// urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils
|
3258
|
-
return {
|
3259
|
-
href: urlParsingNode.href,
|
3260
|
-
protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',
|
3261
|
-
host: urlParsingNode.host,
|
3262
|
-
search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, '') : '',
|
3263
|
-
hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',
|
3264
|
-
hostname: urlParsingNode.hostname,
|
3265
|
-
port: urlParsingNode.port,
|
3266
|
-
pathname: (urlParsingNode.pathname.charAt(0) === '/') ?
|
3267
|
-
urlParsingNode.pathname :
|
3268
|
-
'/' + urlParsingNode.pathname
|
3269
|
-
};
|
3270
|
-
}
|
3238
|
+
const isURLSameOrigin = platform.hasStandardBrowserEnv ? ((origin, isMSIE) => (url) => {
|
3239
|
+
url = new URL(url, platform.origin);
|
3271
3240
|
|
3272
|
-
|
3273
|
-
|
3274
|
-
|
3275
|
-
|
3276
|
-
|
3277
|
-
|
3278
|
-
|
3279
|
-
|
3280
|
-
|
3281
|
-
const parsed = (utils$1.isString(requestURL)) ? resolveURL(requestURL) : requestURL;
|
3282
|
-
return (parsed.protocol === originURL.protocol &&
|
3283
|
-
parsed.host === originURL.host);
|
3284
|
-
};
|
3285
|
-
})() :
|
3286
|
-
|
3287
|
-
// Non standard browser envs (web workers, react-native) lack needed support.
|
3288
|
-
(function nonStandardBrowserEnv() {
|
3289
|
-
return function isURLSameOrigin() {
|
3290
|
-
return true;
|
3291
|
-
};
|
3292
|
-
})();
|
3241
|
+
return (
|
3242
|
+
origin.protocol === url.protocol &&
|
3243
|
+
origin.host === url.host &&
|
3244
|
+
(isMSIE || origin.port === url.port)
|
3245
|
+
);
|
3246
|
+
})(
|
3247
|
+
new URL(platform.origin),
|
3248
|
+
platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)
|
3249
|
+
) : () => true;
|
3293
3250
|
|
3294
3251
|
const cookies = platform.hasStandardBrowserEnv ?
|
3295
3252
|
|
@@ -3346,7 +3303,7 @@ function mergeConfig(config1, config2) {
|
|
3346
3303
|
config2 = config2 || {};
|
3347
3304
|
const config = {};
|
3348
3305
|
|
3349
|
-
function getMergedValue(target, source, caseless) {
|
3306
|
+
function getMergedValue(target, source, prop, caseless) {
|
3350
3307
|
if (utils$1.isPlainObject(target) && utils$1.isPlainObject(source)) {
|
3351
3308
|
return utils$1.merge.call({caseless}, target, source);
|
3352
3309
|
} else if (utils$1.isPlainObject(source)) {
|
@@ -3358,11 +3315,11 @@ function mergeConfig(config1, config2) {
|
|
3358
3315
|
}
|
3359
3316
|
|
3360
3317
|
// eslint-disable-next-line consistent-return
|
3361
|
-
function mergeDeepProperties(a, b, caseless) {
|
3318
|
+
function mergeDeepProperties(a, b, prop , caseless) {
|
3362
3319
|
if (!utils$1.isUndefined(b)) {
|
3363
|
-
return getMergedValue(a, b, caseless);
|
3320
|
+
return getMergedValue(a, b, prop , caseless);
|
3364
3321
|
} else if (!utils$1.isUndefined(a)) {
|
3365
|
-
return getMergedValue(undefined, a, caseless);
|
3322
|
+
return getMergedValue(undefined, a, prop , caseless);
|
3366
3323
|
}
|
3367
3324
|
}
|
3368
3325
|
|
@@ -3420,7 +3377,7 @@ function mergeConfig(config1, config2) {
|
|
3420
3377
|
socketPath: defaultToConfig2,
|
3421
3378
|
responseEncoding: defaultToConfig2,
|
3422
3379
|
validateStatus: mergeDirectKeys,
|
3423
|
-
headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)
|
3380
|
+
headers: (a, b , prop) => mergeDeepProperties(headersToObject(a), headersToObject(b),prop, true)
|
3424
3381
|
};
|
3425
3382
|
|
3426
3383
|
utils$1.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {
|
@@ -3730,14 +3687,34 @@ const streamChunk = function* (chunk, chunkSize) {
|
|
3730
3687
|
}
|
3731
3688
|
};
|
3732
3689
|
|
3733
|
-
const readBytes = async function* (iterable, chunkSize
|
3734
|
-
for await (const chunk of iterable) {
|
3735
|
-
yield* streamChunk(
|
3690
|
+
const readBytes = async function* (iterable, chunkSize) {
|
3691
|
+
for await (const chunk of readStream(iterable)) {
|
3692
|
+
yield* streamChunk(chunk, chunkSize);
|
3736
3693
|
}
|
3737
3694
|
};
|
3738
3695
|
|
3739
|
-
const
|
3740
|
-
|
3696
|
+
const readStream = async function* (stream) {
|
3697
|
+
if (stream[Symbol.asyncIterator]) {
|
3698
|
+
yield* stream;
|
3699
|
+
return;
|
3700
|
+
}
|
3701
|
+
|
3702
|
+
const reader = stream.getReader();
|
3703
|
+
try {
|
3704
|
+
for (;;) {
|
3705
|
+
const {done, value} = await reader.read();
|
3706
|
+
if (done) {
|
3707
|
+
break;
|
3708
|
+
}
|
3709
|
+
yield value;
|
3710
|
+
}
|
3711
|
+
} finally {
|
3712
|
+
await reader.cancel();
|
3713
|
+
}
|
3714
|
+
};
|
3715
|
+
|
3716
|
+
const trackStream = (stream, chunkSize, onProgress, onFinish) => {
|
3717
|
+
const iterator = readBytes(stream, chunkSize);
|
3741
3718
|
|
3742
3719
|
let bytes = 0;
|
3743
3720
|
let done;
|
@@ -3917,7 +3894,7 @@ const fetchAdapter = isFetchSupported && (async (config) => {
|
|
3917
3894
|
progressEventReducer(asyncDecorator(onUploadProgress))
|
3918
3895
|
);
|
3919
3896
|
|
3920
|
-
data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush
|
3897
|
+
data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);
|
3921
3898
|
}
|
3922
3899
|
}
|
3923
3900
|
|
@@ -3960,7 +3937,7 @@ const fetchAdapter = isFetchSupported && (async (config) => {
|
|
3960
3937
|
trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {
|
3961
3938
|
flush && flush();
|
3962
3939
|
unsubscribe && unsubscribe();
|
3963
|
-
}
|
3940
|
+
}),
|
3964
3941
|
options
|
3965
3942
|
);
|
3966
3943
|
}
|
@@ -4193,6 +4170,14 @@ validators$1.transitional = function transitional(validator, version, message) {
|
|
4193
4170
|
};
|
4194
4171
|
};
|
4195
4172
|
|
4173
|
+
validators$1.spelling = function spelling(correctSpelling) {
|
4174
|
+
return (value, opt) => {
|
4175
|
+
// eslint-disable-next-line no-console
|
4176
|
+
console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);
|
4177
|
+
return true;
|
4178
|
+
}
|
4179
|
+
};
|
4180
|
+
|
4196
4181
|
/**
|
4197
4182
|
* Assert object's properties type
|
4198
4183
|
*
|
@@ -4262,9 +4247,9 @@ class Axios {
|
|
4262
4247
|
return await this._request(configOrUrl, config);
|
4263
4248
|
} catch (err) {
|
4264
4249
|
if (err instanceof Error) {
|
4265
|
-
let dummy;
|
4250
|
+
let dummy = {};
|
4266
4251
|
|
4267
|
-
Error.captureStackTrace ? Error.captureStackTrace(dummy
|
4252
|
+
Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());
|
4268
4253
|
|
4269
4254
|
// slice off the Error: ... line
|
4270
4255
|
const stack = dummy.stack ? dummy.stack.replace(/^.+\n/, '') : '';
|
@@ -4319,6 +4304,11 @@ class Axios {
|
|
4319
4304
|
}
|
4320
4305
|
}
|
4321
4306
|
|
4307
|
+
validator.assertOptions(config, {
|
4308
|
+
baseUrl: validators.spelling('baseURL'),
|
4309
|
+
withXsrfToken: validators.spelling('withXSRFToken')
|
4310
|
+
}, true);
|
4311
|
+
|
4322
4312
|
// Set config.method
|
4323
4313
|
config.method = (config.method || this.defaults.method || 'get').toLowerCase();
|
4324
4314
|
|