axios 1.5.0 → 1.6.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/dist/axios.js CHANGED
@@ -1,4 +1,4 @@
1
- // Axios v1.5.0 Copyright (c) 2023 Matt Zabriskie and contributors
1
+ // Axios v1.6.0 Copyright (c) 2023 Matt Zabriskie and contributors
2
2
  (function (global, factory) {
3
3
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
4
4
  typeof define === 'function' && define.amd ? define(factory) :
@@ -1387,7 +1387,7 @@
1387
1387
  }
1388
1388
  var defaults = {
1389
1389
  transitional: transitionalDefaults,
1390
- adapter: platform.isNode ? 'http' : 'xhr',
1390
+ adapter: ['xhr', 'http'],
1391
1391
  transformRequest: [function transformRequest(data, headers) {
1392
1392
  var contentType = headers.getContentType() || '';
1393
1393
  var hasJSONContentType = contentType.indexOf('application/json') > -1;
@@ -2075,14 +2075,17 @@
2075
2075
  config.signal.removeEventListener('abort', onCanceled);
2076
2076
  }
2077
2077
  }
2078
+ var contentType;
2078
2079
  if (utils.isFormData(requestData)) {
2079
2080
  if (platform.isStandardBrowserEnv || platform.isStandardBrowserWebWorkerEnv) {
2080
2081
  requestHeaders.setContentType(false); // Let the browser set it
2081
- } else {
2082
- requestHeaders.setContentType('multipart/form-data;', false); // mobile/desktop app frameworks
2082
+ } else if (!requestHeaders.getContentType(/^\s*multipart\/form-data/)) {
2083
+ requestHeaders.setContentType('multipart/form-data'); // mobile/desktop app frameworks
2084
+ } else if (utils.isString(contentType = requestHeaders.getContentType())) {
2085
+ // fix semicolon duplication issue for ReactNative FormData implementation
2086
+ requestHeaders.setContentType(contentType.replace(/^\s*(multipart\/form-data);+/, '$1'));
2083
2087
  }
2084
2088
  }
2085
-
2086
2089
  var request = new XMLHttpRequest();
2087
2090
 
2088
2091
  // HTTP basic authentication
@@ -2184,7 +2187,8 @@
2184
2187
  // Specifically not if we're in a web worker, or react-native.
2185
2188
  if (platform.isStandardBrowserEnv) {
2186
2189
  // Add xsrf header
2187
- var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName && cookies.read(config.xsrfCookieName);
2190
+ // regarding CVE-2023-45857 config.withCredentials condition was removed temporarily
2191
+ var xsrfValue = isURLSameOrigin(fullPath) && config.xsrfCookieName && cookies.read(config.xsrfCookieName);
2188
2192
  if (xsrfValue) {
2189
2193
  requestHeaders.set(config.xsrfHeaderName, xsrfValue);
2190
2194
  }
@@ -2264,6 +2268,12 @@
2264
2268
  });
2265
2269
  }
2266
2270
  });
2271
+ var renderReason = function renderReason(reason) {
2272
+ return "- ".concat(reason);
2273
+ };
2274
+ var isResolvedHandle = function isResolvedHandle(adapter) {
2275
+ return utils.isFunction(adapter) || adapter === null || adapter === false;
2276
+ };
2267
2277
  var adapters = {
2268
2278
  getAdapter: function getAdapter(adapters) {
2269
2279
  adapters = utils.isArray(adapters) ? adapters : [adapters];
@@ -2271,20 +2281,31 @@
2271
2281
  length = _adapters.length;
2272
2282
  var nameOrAdapter;
2273
2283
  var adapter;
2284
+ var rejectedReasons = {};
2274
2285
  for (var i = 0; i < length; i++) {
2275
2286
  nameOrAdapter = adapters[i];
2276
- if (adapter = utils.isString(nameOrAdapter) ? knownAdapters[nameOrAdapter.toLowerCase()] : nameOrAdapter) {
2287
+ var id = void 0;
2288
+ adapter = nameOrAdapter;
2289
+ if (!isResolvedHandle(nameOrAdapter)) {
2290
+ adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];
2291
+ if (adapter === undefined) {
2292
+ throw new AxiosError("Unknown adapter '".concat(id, "'"));
2293
+ }
2294
+ }
2295
+ if (adapter) {
2277
2296
  break;
2278
2297
  }
2298
+ rejectedReasons[id || '#' + i] = adapter;
2279
2299
  }
2280
2300
  if (!adapter) {
2281
- if (adapter === false) {
2282
- throw new AxiosError("Adapter ".concat(nameOrAdapter, " is not supported by the environment"), 'ERR_NOT_SUPPORT');
2283
- }
2284
- throw new Error(utils.hasOwnProp(knownAdapters, nameOrAdapter) ? "Adapter '".concat(nameOrAdapter, "' is not available in the build") : "Unknown adapter '".concat(nameOrAdapter, "'"));
2285
- }
2286
- if (!utils.isFunction(adapter)) {
2287
- throw new TypeError('adapter is not a function');
2301
+ var reasons = Object.entries(rejectedReasons).map(function (_ref) {
2302
+ var _ref2 = _slicedToArray(_ref, 2),
2303
+ id = _ref2[0],
2304
+ state = _ref2[1];
2305
+ return "adapter ".concat(id, " ") + (state === false ? 'is not supported by the environment' : 'is not available in the build');
2306
+ });
2307
+ var s = length ? reasons.length > 1 ? 'since :\n' + reasons.map(renderReason).join('\n') : ' ' + renderReason(reasons[0]) : 'as no adapter specified';
2308
+ throw new AxiosError("There is no suitable adapter to dispatch the request " + s, 'ERR_NOT_SUPPORT');
2288
2309
  }
2289
2310
  return adapter;
2290
2311
  },
@@ -2448,7 +2469,7 @@
2448
2469
  return config;
2449
2470
  }
2450
2471
 
2451
- var VERSION = "1.5.0";
2472
+ var VERSION = "1.6.0";
2452
2473
 
2453
2474
  var validators$1 = {};
2454
2475