...**/!(*.map|*.min.js)Size
Gzip
Dependencies
Publish
Install
@@ -1,4 +1,4 @@ | |||
| 1 | /*! Axios v1.8.4 Copyright (c) 2025 Matt Zabriskie and contributors */ | 1 | /*! Axios v1.9.0 Copyright (c) 2025 Matt Zabriskie and contributors */ |
| 2 | 'use strict'; | 2 | 'use strict'; |
| 3 | 3 | ||
| 4 | function bind(fn, thisArg) { | 4 | function bind(fn, thisArg) { |
@@ -11,6 +11,7 @@ | |||
| 11 | 11 | ||
| 12 | const {toString} = Object.prototype; | 12 | const {toString} = Object.prototype; |
| 13 | const {getPrototypeOf} = Object; | 13 | const {getPrototypeOf} = Object; |
| 14 | const {iterator, toStringTag} = Symbol; | ||
| 14 | 15 | ||
| 15 | const kindOf = (cache => thing => { | 16 | const kindOf = (cache => thing => { |
| 16 | const str = toString.call(thing); | 17 | const str = toString.call(thing); |
@@ -137,7 +138,7 @@ | |||
| 137 | } | 138 | } |
| 138 | 139 | ||
| 139 | const prototype = getPrototypeOf(val); | 140 | const prototype = getPrototypeOf(val); |
| 140 | return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val); | 141 | return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(toStringTag in val) && !(iterator in val); |
| 141 | }; | 142 | }; |
| 142 | 143 | ||
| 143 | /** | 144 | /** |
@@ -488,13 +489,13 @@ | |||
| 488 | * @returns {void} | 489 | * @returns {void} |
| 489 | */ | 490 | */ |
| 490 | const forEachEntry = (obj, fn) => { | 491 | const forEachEntry = (obj, fn) => { |
| 491 | const generator = obj && obj[Symbol.iterator]; | 492 | const generator = obj && obj[iterator]; |
| 492 | 493 | ||
| 493 | const iterator = generator.call(obj); | 494 | const _iterator = generator.call(obj); |
| 494 | 495 | ||
| 495 | let result; | 496 | let result; |
| 496 | 497 | ||
| 497 | while ((result = iterator.next()) && !result.done) { | 498 | while ((result = _iterator.next()) && !result.done) { |
| 498 | const pair = result.value; | 499 | const pair = result.value; |
| 499 | fn.call(obj, pair[0], pair[1]); | 500 | fn.call(obj, pair[0], pair[1]); |
| 500 | } | 501 | } |
@@ -615,7 +616,7 @@ | |||
| 615 | * @returns {boolean} | 616 | * @returns {boolean} |
| 616 | */ | 617 | */ |
| 617 | function isSpecCompliantForm(thing) { | 618 | function isSpecCompliantForm(thing) { |
| 618 | return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]); | 619 | return !!(thing && isFunction(thing.append) && thing[toStringTag] === 'FormData' && thing[iterator]); |
| 619 | } | 620 | } |
| 620 | 621 | ||
| 621 | const toJSONObject = (obj) => { | 622 | const toJSONObject = (obj) => { |
@@ -684,6 +685,10 @@ | |||
| 684 | 685 | ||
| 685 | // ********************* | 686 | // ********************* |
| 686 | 687 | ||
| 688 | |||
| 689 | const isIterable = (thing) => thing != null && isFunction(thing[iterator]); | ||
| 690 | |||
| 691 | |||
| 687 | var utils$1 = { | 692 | var utils$1 = { |
| 688 | isArray, | 693 | isArray, |
| 689 | isArrayBuffer, | 694 | isArrayBuffer, |
@@ -739,7 +744,8 @@ | |||
| 739 | isAsyncFn, | 744 | isAsyncFn, |
| 740 | isThenable, | 745 | isThenable, |
| 741 | setImmediate: _setImmediate, | 746 | setImmediate: _setImmediate, |
| 742 | asap | 747 | asap, |
| 748 | isIterable | ||
| 743 | }; | 749 | }; |
| 744 | 750 | ||
| 745 | /** | 751 | /** |
@@ -1724,10 +1730,18 @@ | |||
| 1724 | setHeaders(header, valueOrRewrite); | 1730 | setHeaders(header, valueOrRewrite); |
| 1725 | } else if(utils$1.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) { | 1731 | } else if(utils$1.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) { |
| 1726 | setHeaders(parseHeaders(header), valueOrRewrite); | 1732 | setHeaders(parseHeaders(header), valueOrRewrite); |
| 1727 | } else if (utils$1.isHeaders(header)) { | ||
| 1728 | for (const [key, value] of header.entries()) { | ||
| 1729 | setHeader(value, key, rewrite); | 1733 | } else if (utils$1.isObject(header) && utils$1.isIterable(header)) { |
| 1734 | let obj = {}, dest, key; | ||
| 1735 | for (const entry of header) { | ||
| 1736 | if (!utils$1.isArray(entry)) { | ||
| 1737 | throw TypeError('Object iterator must return a key-value pair'); | ||
| 1738 | } | ||
| 1739 | |||
| 1740 | obj[key = entry[0]] = (dest = obj[key]) ? | ||
| 1741 | (utils$1.isArray(dest) ? [...dest, entry[1]] : [dest, entry[1]]) : entry[1]; | ||
| 1730 | } | 1742 | } |
| 1743 | |||
| 1744 | setHeaders(obj, valueOrRewrite); | ||
| 1731 | } else { | 1745 | } else { |
| 1732 | header != null && setHeader(valueOrRewrite, header, rewrite); | 1746 | header != null && setHeader(valueOrRewrite, header, rewrite); |
| 1733 | } | 1747 | } |
@@ -1869,6 +1883,10 @@ | |||
| 1869 | return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\n'); | 1883 | return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\n'); |
| 1870 | } | 1884 | } |
| 1871 | 1885 | ||
| 1886 | getSetCookie() { | ||
| 1887 | return this.get("set-cookie") || []; | ||
| 1888 | } | ||
| 1889 | |||
| 1872 | get [Symbol.toStringTag]() { | 1890 | get [Symbol.toStringTag]() { |
| 1873 | return 'AxiosHeaders'; | 1891 | return 'AxiosHeaders'; |
| 1874 | } | 1892 | } |
@@ -2908,7 +2926,7 @@ | |||
| 2908 | } catch (err) { | 2926 | } catch (err) { |
| 2909 | unsubscribe && unsubscribe(); | 2927 | unsubscribe && unsubscribe(); |
| 2910 | 2928 | ||
| 2911 | if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) { | 2929 | if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) { |
| 2912 | throw Object.assign( | 2930 | throw Object.assign( |
| 2913 | new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request), | 2931 | new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request), |
| 2914 | { | 2932 | { |
@@ -3068,7 +3086,7 @@ | |||
| 3068 | }); | 3086 | }); |
| 3069 | } | 3087 | } |
| 3070 | 3088 | ||
| 3071 | const VERSION = "1.8.4"; | 3089 | const VERSION = "1.9.0"; |
| 3072 | 3090 | ||
| 3073 | const validators$1 = {}; | 3091 | const validators$1 = {}; |
| 3074 | 3092 | ||
@@ -3176,7 +3194,7 @@ | |||
| 3176 | */ | 3194 | */ |
| 3177 | class Axios { | 3195 | class Axios { |
| 3178 | constructor(instanceConfig) { | 3196 | constructor(instanceConfig) { |
| 3179 | this.defaults = instanceConfig; | 3197 | this.defaults = instanceConfig || {}; |
| 3180 | this.interceptors = { | 3198 | this.interceptors = { |
| 3181 | request: new InterceptorManager$1(), | 3199 | request: new InterceptorManager$1(), |
| 3182 | response: new InterceptorManager$1() | 3200 | response: new InterceptorManager$1() |
@@ -1,4 +1,4 @@ | |||
| 1 | /*! Axios v1.8.4 Copyright (c) 2025 Matt Zabriskie and contributors */ | 1 | /*! Axios v1.9.0 Copyright (c) 2025 Matt Zabriskie and contributors */ |
| 2 | 'use strict'; | 2 | 'use strict'; |
| 3 | 3 | ||
| 4 | const FormData$1 = require('form-data'); | 4 | const FormData$1 = require('form-data'); |
@@ -36,6 +36,7 @@ | |||
| 36 | 36 | ||
| 37 | const {toString} = Object.prototype; | 37 | const {toString} = Object.prototype; |
| 38 | const {getPrototypeOf} = Object; | 38 | const {getPrototypeOf} = Object; |
| 39 | const {iterator, toStringTag} = Symbol; | ||
| 39 | 40 | ||
| 40 | const kindOf = (cache => thing => { | 41 | const kindOf = (cache => thing => { |
| 41 | const str = toString.call(thing); | 42 | const str = toString.call(thing); |
@@ -162,7 +163,7 @@ | |||
| 162 | } | 163 | } |
| 163 | 164 | ||
| 164 | const prototype = getPrototypeOf(val); | 165 | const prototype = getPrototypeOf(val); |
| 165 | return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val); | 166 | return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(toStringTag in val) && !(iterator in val); |
| 166 | }; | 167 | }; |
| 167 | 168 | ||
| 168 | /** | 169 | /** |
@@ -513,13 +514,13 @@ | |||
| 513 | * @returns {void} | 514 | * @returns {void} |
| 514 | */ | 515 | */ |
| 515 | const forEachEntry = (obj, fn) => { | 516 | const forEachEntry = (obj, fn) => { |
| 516 | const generator = obj && obj[Symbol.iterator]; | 517 | const generator = obj && obj[iterator]; |
| 517 | 518 | ||
| 518 | const iterator = generator.call(obj); | 519 | const _iterator = generator.call(obj); |
| 519 | 520 | ||
| 520 | let result; | 521 | let result; |
| 521 | 522 | ||
| 522 | while ((result = iterator.next()) && !result.done) { | 523 | while ((result = _iterator.next()) && !result.done) { |
| 523 | const pair = result.value; | 524 | const pair = result.value; |
| 524 | fn.call(obj, pair[0], pair[1]); | 525 | fn.call(obj, pair[0], pair[1]); |
| 525 | } | 526 | } |
@@ -640,7 +641,7 @@ | |||
| 640 | * @returns {boolean} | 641 | * @returns {boolean} |
| 641 | */ | 642 | */ |
| 642 | function isSpecCompliantForm(thing) { | 643 | function isSpecCompliantForm(thing) { |
| 643 | return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]); | 644 | return !!(thing && isFunction(thing.append) && thing[toStringTag] === 'FormData' && thing[iterator]); |
| 644 | } | 645 | } |
| 645 | 646 | ||
| 646 | const toJSONObject = (obj) => { | 647 | const toJSONObject = (obj) => { |
@@ -709,6 +710,10 @@ | |||
| 709 | 710 | ||
| 710 | // ********************* | 711 | // ********************* |
| 711 | 712 | ||
| 713 | |||
| 714 | const isIterable = (thing) => thing != null && isFunction(thing[iterator]); | ||
| 715 | |||
| 716 | |||
| 712 | const utils$1 = { | 717 | const utils$1 = { |
| 713 | isArray, | 718 | isArray, |
| 714 | isArrayBuffer, | 719 | isArrayBuffer, |
@@ -764,7 +769,8 @@ | |||
| 764 | isAsyncFn, | 769 | isAsyncFn, |
| 765 | isThenable, | 770 | isThenable, |
| 766 | setImmediate: _setImmediate, | 771 | setImmediate: _setImmediate, |
| 767 | asap | 772 | asap, |
| 773 | isIterable | ||
| 768 | }; | 774 | }; |
| 769 | 775 | ||
| 770 | /** | 776 | /** |
@@ -1767,10 +1773,18 @@ | |||
| 1767 | setHeaders(header, valueOrRewrite); | 1773 | setHeaders(header, valueOrRewrite); |
| 1768 | } else if(utils$1.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) { | 1774 | } else if(utils$1.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) { |
| 1769 | setHeaders(parseHeaders(header), valueOrRewrite); | 1775 | setHeaders(parseHeaders(header), valueOrRewrite); |
| 1770 | } else if (utils$1.isHeaders(header)) { | ||
| 1771 | for (const [key, value] of header.entries()) { | ||
| 1772 | setHeader(value, key, rewrite); | 1776 | } else if (utils$1.isObject(header) && utils$1.isIterable(header)) { |
| 1777 | let obj = {}, dest, key; | ||
| 1778 | for (const entry of header) { | ||
| 1779 | if (!utils$1.isArray(entry)) { | ||
| 1780 | throw TypeError('Object iterator must return a key-value pair'); | ||
| 1781 | } | ||
| 1782 | |||
| 1783 | obj[key = entry[0]] = (dest = obj[key]) ? | ||
| 1784 | (utils$1.isArray(dest) ? [...dest, entry[1]] : [dest, entry[1]]) : entry[1]; | ||
| 1773 | } | 1785 | } |
| 1786 | |||
| 1787 | setHeaders(obj, valueOrRewrite); | ||
| 1774 | } else { | 1788 | } else { |
| 1775 | header != null && setHeader(valueOrRewrite, header, rewrite); | 1789 | header != null && setHeader(valueOrRewrite, header, rewrite); |
| 1776 | } | 1790 | } |
@@ -1912,6 +1926,10 @@ | |||
| 1912 | return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\n'); | 1926 | return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\n'); |
| 1913 | } | 1927 | } |
| 1914 | 1928 | ||
| 1929 | getSetCookie() { | ||
| 1930 | return this.get("set-cookie") || []; | ||
| 1931 | } | ||
| 1932 | |||
| 1915 | get [Symbol.toStringTag]() { | 1933 | get [Symbol.toStringTag]() { |
| 1916 | return 'AxiosHeaders'; | 1934 | return 'AxiosHeaders'; |
| 1917 | } | 1935 | } |
@@ -2084,7 +2102,7 @@ | |||
| 2084 | return requestedURL; | 2102 | return requestedURL; |
| 2085 | } | 2103 | } |
| 2086 | 2104 | ||
| 2087 | const VERSION = "1.8.4"; | 2105 | const VERSION = "1.9.0"; |
| 2088 | 2106 | ||
| 2089 | function parseProtocol(url) { | 2107 | function parseProtocol(url) { |
| 2090 | const match = /^([-+\w]{1,25})(:?\/\/|:)/.exec(url); | 2108 | const match = /^([-+\w]{1,25})(:?\/\/|:)/.exec(url); |
@@ -2366,7 +2384,7 @@ | |||
| 2366 | } | 2384 | } |
| 2367 | 2385 | ||
| 2368 | const boundaryBytes = textEncoder.encode('--' + boundary + CRLF); | 2386 | const boundaryBytes = textEncoder.encode('--' + boundary + CRLF); |
| 2369 | const footerBytes = textEncoder.encode('--' + boundary + '--' + CRLF + CRLF); | 2387 | const footerBytes = textEncoder.encode('--' + boundary + '--' + CRLF); |
| 2370 | let contentLength = footerBytes.byteLength; | 2388 | let contentLength = footerBytes.byteLength; |
| 2371 | 2389 | ||
| 2372 | const parts = Array.from(form.entries()).map(([name, value]) => { | 2390 | const parts = Array.from(form.entries()).map(([name, value]) => { |
@@ -3967,7 +3985,7 @@ | |||
| 3967 | } catch (err) { | 3985 | } catch (err) { |
| 3968 | unsubscribe && unsubscribe(); | 3986 | unsubscribe && unsubscribe(); |
| 3969 | 3987 | ||
| 3970 | if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) { | 3988 | if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) { |
| 3971 | throw Object.assign( | 3989 | throw Object.assign( |
| 3972 | new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request), | 3990 | new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request), |
| 3973 | { | 3991 | { |
@@ -4233,7 +4251,7 @@ | |||
| 4233 | */ | 4251 | */ |
| 4234 | class Axios { | 4252 | class Axios { |
| 4235 | constructor(instanceConfig) { | 4253 | constructor(instanceConfig) { |
| 4236 | this.defaults = instanceConfig; | 4254 | this.defaults = instanceConfig || {}; |
| 4237 | this.interceptors = { | 4255 | this.interceptors = { |
| 4238 | request: new InterceptorManager$1(), | 4256 | request: new InterceptorManager$1(), |
| 4239 | response: new InterceptorManager$1() | 4257 | response: new InterceptorManager$1() |
@@ -359,7 +359,7 @@ | |||
| 359 | 359 | ||
| 360 | type Milliseconds = number; | 360 | type Milliseconds = number; |
| 361 | 361 | ||
| 362 | type AxiosAdapterName = 'fetch' | 'xhr' | 'http' | string; | 362 | type AxiosAdapterName = 'fetch' | 'xhr' | 'http' | (string & {}); |
| 363 | 363 | ||
| 364 | type AxiosAdapterConfig = AxiosAdapter | AxiosAdapterName; | 364 | type AxiosAdapterConfig = AxiosAdapter | AxiosAdapterName; |
| 365 | 365 | ||
@@ -508,6 +508,7 @@ | |||
| 508 | <T = any, R = AxiosResponse<T>, D = any>(config: AxiosRequestConfig<D>): Promise<R>; | 508 | <T = any, R = AxiosResponse<T>, D = any>(config: AxiosRequestConfig<D>): Promise<R>; |
| 509 | <T = any, R = AxiosResponse<T>, D = any>(url: string, config?: AxiosRequestConfig<D>): Promise<R>; | 509 | <T = any, R = AxiosResponse<T>, D = any>(url: string, config?: AxiosRequestConfig<D>): Promise<R>; |
| 510 | 510 | ||
| 511 | create(config?: CreateAxiosDefaults): AxiosInstance; | ||
| 511 | defaults: Omit<AxiosDefaults, 'headers'> & { | 512 | defaults: Omit<AxiosDefaults, 'headers'> & { |
| 512 | headers: HeadersDefaults & { | 513 | headers: HeadersDefaults & { |
| 513 | [key: string]: AxiosHeaderValue | 514 | [key: string]: AxiosHeaderValue |
@@ -526,7 +527,6 @@ | |||
| 526 | } | 527 | } |
| 527 | 528 | ||
| 528 | interface AxiosStatic extends AxiosInstance { | 529 | interface AxiosStatic extends AxiosInstance { |
| 529 | create(config?: CreateAxiosDefaults): AxiosInstance; | ||
| 530 | Cancel: CancelStatic; | 530 | Cancel: CancelStatic; |
| 531 | CancelToken: CancelTokenStatic; | 531 | CancelToken: CancelTokenStatic; |
| 532 | Axios: typeof Axios; | 532 | Axios: typeof Axios; |
@@ -1,4 +1,4 @@ | |||
| 1 | /*! Axios v1.8.4 Copyright (c) 2025 Matt Zabriskie and contributors */ | 1 | /*! Axios v1.9.0 Copyright (c) 2025 Matt Zabriskie and contributors */ |
| 2 | (function (global, factory) { | 2 | (function (global, factory) { |
| 3 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : | 3 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : |
| 4 | typeof define === 'function' && define.amd ? define(factory) : | 4 | typeof define === 'function' && define.amd ? define(factory) : |
@@ -681,6 +681,8 @@ | |||
| 681 | 681 | ||
| 682 | var toString = Object.prototype.toString; | 682 | var toString = Object.prototype.toString; |
| 683 | var getPrototypeOf = Object.getPrototypeOf; | 683 | var getPrototypeOf = Object.getPrototypeOf; |
| 684 | var iterator = Symbol.iterator, | ||
| 685 | toStringTag = Symbol.toStringTag; | ||
| 684 | var kindOf = function (cache) { | 686 | var kindOf = function (cache) { |
| 685 | return function (thing) { | 687 | return function (thing) { |
| 686 | var str = toString.call(thing); | 688 | var str = toString.call(thing); |
@@ -813,7 +815,7 @@ | |||
| 813 | return false; | 815 | return false; |
| 814 | } | 816 | } |
| 815 | var prototype = getPrototypeOf(val); | 817 | var prototype = getPrototypeOf(val); |
| 816 | return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val); | 818 | return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(toStringTag in val) && !(iterator in val); |
| 817 | }; | 819 | }; |
| 818 | 820 | ||
| 819 | /** | 821 | /** |
@@ -1165,10 +1167,10 @@ | |||
| 1165 | * @returns {void} | 1167 | * @returns {void} |
| 1166 | */ | 1168 | */ |
| 1167 | var forEachEntry = function forEachEntry(obj, fn) { | 1169 | var forEachEntry = function forEachEntry(obj, fn) { |
| 1168 | var generator = obj && obj[Symbol.iterator]; | ||
| 1169 | var iterator = generator.call(obj); | 1170 | var generator = obj && obj[iterator]; |
| 1171 | var _iterator = generator.call(obj); | ||
| 1170 | var result; | 1172 | var result; |
| 1171 | while ((result = iterator.next()) && !result.done) { | 1173 | while ((result = _iterator.next()) && !result.done) { |
| 1172 | var pair = result.value; | 1174 | var pair = result.value; |
| 1173 | fn.call(obj, pair[0], pair[1]); | 1175 | fn.call(obj, pair[0], pair[1]); |
| 1174 | } | 1176 | } |
@@ -1275,7 +1277,7 @@ | |||
| 1275 | * @returns {boolean} | 1277 | * @returns {boolean} |
| 1276 | */ | 1278 | */ |
| 1277 | function isSpecCompliantForm(thing) { | 1279 | function isSpecCompliantForm(thing) { |
| 1278 | return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]); | 1280 | return !!(thing && isFunction(thing.append) && thing[toStringTag] === 'FormData' && thing[iterator]); |
| 1279 | } | 1281 | } |
| 1280 | var toJSONObject = function toJSONObject(obj) { | 1282 | var toJSONObject = function toJSONObject(obj) { |
| 1281 | var stack = new Array(10); | 1283 | var stack = new Array(10); |
@@ -1331,6 +1333,9 @@ | |||
| 1331 | 1333 | ||
| 1332 | // ********************* | 1334 | // ********************* |
| 1333 | 1335 | ||
| 1336 | var isIterable = function isIterable(thing) { | ||
| 1337 | return thing != null && isFunction(thing[iterator]); | ||
| 1338 | }; | ||
| 1334 | var utils$1 = { | 1339 | var utils$1 = { |
| 1335 | isArray: isArray, | 1340 | isArray: isArray, |
| 1336 | isArrayBuffer: isArrayBuffer, | 1341 | isArrayBuffer: isArrayBuffer, |
@@ -1387,7 +1392,8 @@ | |||
| 1387 | isAsyncFn: isAsyncFn, | 1392 | isAsyncFn: isAsyncFn, |
| 1388 | isThenable: isThenable, | 1393 | isThenable: isThenable, |
| 1389 | setImmediate: _setImmediate, | 1394 | setImmediate: _setImmediate, |
| 1390 | asap: asap | 1395 | asap: asap, |
| 1396 | isIterable: isIterable | ||
| 1391 | }; | 1397 | }; |
| 1392 | 1398 | ||
| 1393 | /** | 1399 | /** |
@@ -2227,21 +2233,26 @@ | |||
| 2227 | setHeaders(header, valueOrRewrite); | 2233 | setHeaders(header, valueOrRewrite); |
| 2228 | } else if (utils$1.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) { | 2234 | } else if (utils$1.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) { |
| 2229 | setHeaders(parseHeaders(header), valueOrRewrite); | 2235 | setHeaders(parseHeaders(header), valueOrRewrite); |
| 2230 | } else if (utils$1.isHeaders(header)) { | ||
| 2231 | var _iterator = _createForOfIteratorHelper(header.entries()), | 2236 | } else if (utils$1.isObject(header) && utils$1.isIterable(header)) { |
| 2237 | var obj = {}, | ||
| 2238 | dest, | ||
| 2239 | key; | ||
| 2240 | var _iterator = _createForOfIteratorHelper(header), | ||
| 2232 | _step; | 2241 | _step; |
| 2233 | try { | 2242 | try { |
| 2234 | for (_iterator.s(); !(_step = _iterator.n()).done;) { | 2243 | for (_iterator.s(); !(_step = _iterator.n()).done;) { |
| 2235 | var _step$value = _slicedToArray(_step.value, 2), | ||
| 2236 | key = _step$value[0], | ||
| 2237 | value = _step$value[1]; | ||
| 2238 | setHeader(value, key, rewrite); | 2244 | var entry = _step.value; |
| 2245 | if (!utils$1.isArray(entry)) { | ||
| 2246 | throw TypeError('Object iterator must return a key-value pair'); | ||
| 2247 | } | ||
| 2248 | obj[key = entry[0]] = (dest = obj[key]) ? utils$1.isArray(dest) ? [].concat(_toConsumableArray(dest), [entry[1]]) : [dest, entry[1]] : entry[1]; | ||
| 2239 | } | 2249 | } |
| 2240 | } catch (err) { | 2250 | } catch (err) { |
| 2241 | _iterator.e(err); | 2251 | _iterator.e(err); |
| 2242 | } finally { | 2252 | } finally { |
| 2243 | _iterator.f(); | 2253 | _iterator.f(); |
| 2244 | } | 2254 | } |
| 2255 | setHeaders(obj, valueOrRewrite); | ||
| 2245 | } else { | 2256 | } else { |
| 2246 | header != null && setHeader(valueOrRewrite, header, rewrite); | 2257 | header != null && setHeader(valueOrRewrite, header, rewrite); |
| 2247 | } | 2258 | } |
@@ -2373,6 +2384,11 @@ | |||
| 2373 | }).join('\n'); | 2384 | }).join('\n'); |
| 2374 | } | 2385 | } |
| 2375 | }, { | 2386 | }, { |
| 2387 | key: "getSetCookie", | ||
| 2388 | value: function getSetCookie() { | ||
| 2389 | return this.get("set-cookie") || []; | ||
| 2390 | } | ||
| 2391 | }, { | ||
| 2376 | key: _Symbol$toStringTag, | 2392 | key: _Symbol$toStringTag, |
| 2377 | get: function get() { | 2393 | get: function get() { |
| 2378 | return 'AxiosHeaders'; | 2394 | return 'AxiosHeaders'; |
@@ -3521,7 +3537,7 @@ | |||
| 3521 | _context4.prev = 33; | 3537 | _context4.prev = 33; |
| 3522 | _context4.t2 = _context4["catch"](4); | 3538 | _context4.t2 = _context4["catch"](4); |
| 3523 | unsubscribe && unsubscribe(); | 3539 | unsubscribe && unsubscribe(); |
| 3524 | if (!(_context4.t2 && _context4.t2.name === 'TypeError' && /fetch/i.test(_context4.t2.message))) { | 3540 | if (!(_context4.t2 && _context4.t2.name === 'TypeError' && /Load failed|fetch/i.test(_context4.t2.message))) { |
| 3525 | _context4.next = 38; | 3541 | _context4.next = 38; |
| 3526 | break; | 3542 | break; |
| 3527 | } | 3543 | } |
@@ -3658,7 +3674,7 @@ | |||
| 3658 | }); | 3674 | }); |
| 3659 | } | 3675 | } |
| 3660 | 3676 | ||
| 3661 | var VERSION = "1.8.4"; | 3677 | var VERSION = "1.9.0"; |
| 3662 | 3678 | ||
| 3663 | var validators$1 = {}; | 3679 | var validators$1 = {}; |
| 3664 | 3680 | ||
@@ -3754,7 +3770,7 @@ | |||
| 3754 | var Axios = /*#__PURE__*/function () { | 3770 | var Axios = /*#__PURE__*/function () { |
| 3755 | function Axios(instanceConfig) { | 3771 | function Axios(instanceConfig) { |
| 3756 | _classCallCheck(this, Axios); | 3772 | _classCallCheck(this, Axios); |
| 3757 | this.defaults = instanceConfig; | 3773 | this.defaults = instanceConfig || {}; |
| 3758 | this.interceptors = { | 3774 | this.interceptors = { |
| 3759 | request: new InterceptorManager$1(), | 3775 | request: new InterceptorManager$1(), |
| 3760 | response: new InterceptorManager$1() | 3776 | response: new InterceptorManager$1() |
@@ -1,4 +1,4 @@ | |||
| 1 | /*! Axios v1.8.4 Copyright (c) 2025 Matt Zabriskie and contributors */ | 1 | /*! Axios v1.9.0 Copyright (c) 2025 Matt Zabriskie and contributors */ |
| 2 | function bind(fn, thisArg) { | 2 | function bind(fn, thisArg) { |
| 3 | return function wrap() { | 3 | return function wrap() { |
| 4 | return fn.apply(thisArg, arguments); | 4 | return fn.apply(thisArg, arguments); |
@@ -9,6 +9,7 @@ | |||
| 9 | 9 | ||
| 10 | const {toString} = Object.prototype; | 10 | const {toString} = Object.prototype; |
| 11 | const {getPrototypeOf} = Object; | 11 | const {getPrototypeOf} = Object; |
| 12 | const {iterator, toStringTag} = Symbol; | ||
| 12 | 13 | ||
| 13 | const kindOf = (cache => thing => { | 14 | const kindOf = (cache => thing => { |
| 14 | const str = toString.call(thing); | 15 | const str = toString.call(thing); |
@@ -135,7 +136,7 @@ | |||
| 135 | } | 136 | } |
| 136 | 137 | ||
| 137 | const prototype = getPrototypeOf(val); | 138 | const prototype = getPrototypeOf(val); |
| 138 | return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val); | 139 | return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(toStringTag in val) && !(iterator in val); |
| 139 | }; | 140 | }; |
| 140 | 141 | ||
| 141 | /** | 142 | /** |
@@ -486,13 +487,13 @@ | |||
| 486 | * @returns {void} | 487 | * @returns {void} |
| 487 | */ | 488 | */ |
| 488 | const forEachEntry = (obj, fn) => { | 489 | const forEachEntry = (obj, fn) => { |
| 489 | const generator = obj && obj[Symbol.iterator]; | 490 | const generator = obj && obj[iterator]; |
| 490 | 491 | ||
| 491 | const iterator = generator.call(obj); | 492 | const _iterator = generator.call(obj); |
| 492 | 493 | ||
| 493 | let result; | 494 | let result; |
| 494 | 495 | ||
| 495 | while ((result = iterator.next()) && !result.done) { | 496 | while ((result = _iterator.next()) && !result.done) { |
| 496 | const pair = result.value; | 497 | const pair = result.value; |
| 497 | fn.call(obj, pair[0], pair[1]); | 498 | fn.call(obj, pair[0], pair[1]); |
| 498 | } | 499 | } |
@@ -613,7 +614,7 @@ | |||
| 613 | * @returns {boolean} | 614 | * @returns {boolean} |
| 614 | */ | 615 | */ |
| 615 | function isSpecCompliantForm(thing) { | 616 | function isSpecCompliantForm(thing) { |
| 616 | return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]); | 617 | return !!(thing && isFunction(thing.append) && thing[toStringTag] === 'FormData' && thing[iterator]); |
| 617 | } | 618 | } |
| 618 | 619 | ||
| 619 | const toJSONObject = (obj) => { | 620 | const toJSONObject = (obj) => { |
@@ -682,6 +683,10 @@ | |||
| 682 | 683 | ||
| 683 | // ********************* | 684 | // ********************* |
| 684 | 685 | ||
| 686 | |||
| 687 | const isIterable = (thing) => thing != null && isFunction(thing[iterator]); | ||
| 688 | |||
| 689 | |||
| 685 | const utils$1 = { | 690 | const utils$1 = { |
| 686 | isArray, | 691 | isArray, |
| 687 | isArrayBuffer, | 692 | isArrayBuffer, |
@@ -737,7 +742,8 @@ | |||
| 737 | isAsyncFn, | 742 | isAsyncFn, |
| 738 | isThenable, | 743 | isThenable, |
| 739 | setImmediate: _setImmediate, | 744 | setImmediate: _setImmediate, |
| 740 | asap | 745 | asap, |
| 746 | isIterable | ||
| 741 | }; | 747 | }; |
| 742 | 748 | ||
| 743 | /** | 749 | /** |
@@ -1722,10 +1728,18 @@ | |||
| 1722 | setHeaders(header, valueOrRewrite); | 1728 | setHeaders(header, valueOrRewrite); |
| 1723 | } else if(utils$1.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) { | 1729 | } else if(utils$1.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) { |
| 1724 | setHeaders(parseHeaders(header), valueOrRewrite); | 1730 | setHeaders(parseHeaders(header), valueOrRewrite); |
| 1725 | } else if (utils$1.isHeaders(header)) { | ||
| 1726 | for (const [key, value] of header.entries()) { | ||
| 1727 | setHeader(value, key, rewrite); | 1731 | } else if (utils$1.isObject(header) && utils$1.isIterable(header)) { |
| 1732 | let obj = {}, dest, key; | ||
| 1733 | for (const entry of header) { | ||
| 1734 | if (!utils$1.isArray(entry)) { | ||
| 1735 | throw TypeError('Object iterator must return a key-value pair'); | ||
| 1736 | } | ||
| 1737 | |||
| 1738 | obj[key = entry[0]] = (dest = obj[key]) ? | ||
| 1739 | (utils$1.isArray(dest) ? [...dest, entry[1]] : [dest, entry[1]]) : entry[1]; | ||
| 1728 | } | 1740 | } |
| 1741 | |||
| 1742 | setHeaders(obj, valueOrRewrite); | ||
| 1729 | } else { | 1743 | } else { |
| 1730 | header != null && setHeader(valueOrRewrite, header, rewrite); | 1744 | header != null && setHeader(valueOrRewrite, header, rewrite); |
| 1731 | } | 1745 | } |
@@ -1867,6 +1881,10 @@ | |||
| 1867 | return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\n'); | 1881 | return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\n'); |
| 1868 | } | 1882 | } |
| 1869 | 1883 | ||
| 1884 | getSetCookie() { | ||
| 1885 | return this.get("set-cookie") || []; | ||
| 1886 | } | ||
| 1887 | |||
| 1870 | get [Symbol.toStringTag]() { | 1888 | get [Symbol.toStringTag]() { |
| 1871 | return 'AxiosHeaders'; | 1889 | return 'AxiosHeaders'; |
| 1872 | } | 1890 | } |
@@ -2906,7 +2924,7 @@ | |||
| 2906 | } catch (err) { | 2924 | } catch (err) { |
| 2907 | unsubscribe && unsubscribe(); | 2925 | unsubscribe && unsubscribe(); |
| 2908 | 2926 | ||
| 2909 | if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) { | 2927 | if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) { |
| 2910 | throw Object.assign( | 2928 | throw Object.assign( |
| 2911 | new AxiosError$1('Network Error', AxiosError$1.ERR_NETWORK, config, request), | 2929 | new AxiosError$1('Network Error', AxiosError$1.ERR_NETWORK, config, request), |
| 2912 | { | 2930 | { |
@@ -3066,7 +3084,7 @@ | |||
| 3066 | }); | 3084 | }); |
| 3067 | } | 3085 | } |
| 3068 | 3086 | ||
| 3069 | const VERSION$1 = "1.8.4"; | 3087 | const VERSION$1 = "1.9.0"; |
| 3070 | 3088 | ||
| 3071 | const validators$1 = {}; | 3089 | const validators$1 = {}; |
| 3072 | 3090 | ||
@@ -3174,7 +3192,7 @@ | |||
| 3174 | */ | 3192 | */ |
| 3175 | class Axios$1 { | 3193 | class Axios$1 { |
| 3176 | constructor(instanceConfig) { | 3194 | constructor(instanceConfig) { |
| 3177 | this.defaults = instanceConfig; | 3195 | this.defaults = instanceConfig || {}; |
| 3178 | this.interceptors = { | 3196 | this.interceptors = { |
| 3179 | request: new InterceptorManager$1(), | 3197 | request: new InterceptorManager$1(), |
| 3180 | response: new InterceptorManager$1() | 3198 | response: new InterceptorManager$1() |
@@ -20,7 +20,7 @@ | |||
| 20 | */ | 20 | */ |
| 21 | class Axios { | 21 | class Axios { |
| 22 | constructor(instanceConfig) { | 22 | constructor(instanceConfig) { |
| 23 | this.defaults = instanceConfig; | 23 | this.defaults = instanceConfig || {}; |
| 24 | this.interceptors = { | 24 | this.interceptors = { |
| 25 | request: new InterceptorManager(), | 25 | request: new InterceptorManager(), |
| 26 | response: new InterceptorManager() | 26 | response: new InterceptorManager() |
@@ -100,10 +100,18 @@ | |||
| 100 | setHeaders(header, valueOrRewrite) | 100 | setHeaders(header, valueOrRewrite) |
| 101 | } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) { | 101 | } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) { |
| 102 | setHeaders(parseHeaders(header), valueOrRewrite); | 102 | setHeaders(parseHeaders(header), valueOrRewrite); |
| 103 | } else if (utils.isHeaders(header)) { | ||
| 104 | for (const [key, value] of header.entries()) { | ||
| 105 | setHeader(value, key, rewrite); | 103 | } else if (utils.isObject(header) && utils.isIterable(header)) { |
| 104 | let obj = {}, dest, key; | ||
| 105 | for (const entry of header) { | ||
| 106 | if (!utils.isArray(entry)) { | ||
| 107 | throw TypeError('Object iterator must return a key-value pair'); | ||
| 108 | } | ||
| 109 | |||
| 110 | obj[key = entry[0]] = (dest = obj[key]) ? | ||
| 111 | (utils.isArray(dest) ? [...dest, entry[1]] : [dest, entry[1]]) : entry[1]; | ||
| 106 | } | 112 | } |
| 113 | |||
| 114 | setHeaders(obj, valueOrRewrite) | ||
| 107 | } else { | 115 | } else { |
| 108 | header != null && setHeader(valueOrRewrite, header, rewrite); | 116 | header != null && setHeader(valueOrRewrite, header, rewrite); |
| 109 | } | 117 | } |
@@ -245,6 +253,10 @@ | |||
| 245 | return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\n'); | 253 | return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\n'); |
| 246 | } | 254 | } |
| 247 | 255 | ||
| 256 | getSetCookie() { | ||
| 257 | return this.get("set-cookie") || []; | ||
| 258 | } | ||
| 259 | |||
| 248 | get [Symbol.toStringTag]() { | 260 | get [Symbol.toStringTag]() { |
| 249 | return 'AxiosHeaders'; | 261 | return 'AxiosHeaders'; |
| 250 | } | 262 | } |
@@ -213,7 +213,7 @@ | |||
| 213 | } catch (err) { | 213 | } catch (err) { |
| 214 | unsubscribe && unsubscribe(); | 214 | unsubscribe && unsubscribe(); |
| 215 | 215 | ||
| 216 | if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) { | 216 | if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) { |
| 217 | throw Object.assign( | 217 | throw Object.assign( |
| 218 | new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request), | 218 | new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request), |
| 219 | { | 219 | { |
@@ -76,7 +76,7 @@ | |||
| 76 | } | 76 | } |
| 77 | 77 | ||
| 78 | const boundaryBytes = textEncoder.encode('--' + boundary + CRLF); | 78 | const boundaryBytes = textEncoder.encode('--' + boundary + CRLF); |
| 79 | const footerBytes = textEncoder.encode('--' + boundary + '--' + CRLF + CRLF); | 79 | const footerBytes = textEncoder.encode('--' + boundary + '--' + CRLF); |
| 80 | let contentLength = footerBytes.byteLength; | 80 | let contentLength = footerBytes.byteLength; |
| 81 | 81 | ||
| 82 | const parts = Array.from(form.entries()).map(([name, value]) => { | 82 | const parts = Array.from(form.entries()).map(([name, value]) => { |
@@ -6,6 +6,7 @@ | |||
| 6 | 6 | ||
| 7 | const {toString} = Object.prototype; | 7 | const {toString} = Object.prototype; |
| 8 | const {getPrototypeOf} = Object; | 8 | const {getPrototypeOf} = Object; |
| 9 | const {iterator, toStringTag} = Symbol; | ||
| 9 | 10 | ||
| 10 | const kindOf = (cache => thing => { | 11 | const kindOf = (cache => thing => { |
| 11 | const str = toString.call(thing); | 12 | const str = toString.call(thing); |
@@ -132,7 +133,7 @@ | |||
| 132 | } | 133 | } |
| 133 | 134 | ||
| 134 | const prototype = getPrototypeOf(val); | 135 | const prototype = getPrototypeOf(val); |
| 135 | return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val); | 136 | return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(toStringTag in val) && !(iterator in val); |
| 136 | } | 137 | } |
| 137 | 138 | ||
| 138 | /** | 139 | /** |
@@ -483,13 +484,13 @@ | |||
| 483 | * @returns {void} | 484 | * @returns {void} |
| 484 | */ | 485 | */ |
| 485 | const forEachEntry = (obj, fn) => { | 486 | const forEachEntry = (obj, fn) => { |
| 486 | const generator = obj && obj[Symbol.iterator]; | 487 | const generator = obj && obj[iterator]; |
| 487 | 488 | ||
| 488 | const iterator = generator.call(obj); | 489 | const _iterator = generator.call(obj); |
| 489 | 490 | ||
| 490 | let result; | 491 | let result; |
| 491 | 492 | ||
| 492 | while ((result = iterator.next()) && !result.done) { | 493 | while ((result = _iterator.next()) && !result.done) { |
| 493 | const pair = result.value; | 494 | const pair = result.value; |
| 494 | fn.call(obj, pair[0], pair[1]); | 495 | fn.call(obj, pair[0], pair[1]); |
| 495 | } | 496 | } |
@@ -610,7 +611,7 @@ | |||
| 610 | * @returns {boolean} | 611 | * @returns {boolean} |
| 611 | */ | 612 | */ |
| 612 | function isSpecCompliantForm(thing) { | 613 | function isSpecCompliantForm(thing) { |
| 613 | return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]); | 614 | return !!(thing && isFunction(thing.append) && thing[toStringTag] === 'FormData' && thing[iterator]); |
| 614 | } | 615 | } |
| 615 | 616 | ||
| 616 | const toJSONObject = (obj) => { | 617 | const toJSONObject = (obj) => { |
@@ -679,6 +680,10 @@ | |||
| 679 | 680 | ||
| 680 | // ********************* | 681 | // ********************* |
| 681 | 682 | ||
| 683 | |||
| 684 | const isIterable = (thing) => thing != null && isFunction(thing[iterator]); | ||
| 685 | |||
| 686 | |||
| 682 | export default { | 687 | export default { |
| 683 | isArray, | 688 | isArray, |
| 684 | isArrayBuffer, | 689 | isArrayBuffer, |
@@ -734,5 +739,6 @@ | |||
| 734 | isAsyncFn, | 739 | isAsyncFn, |
| 735 | isThenable, | 740 | isThenable, |
| 736 | setImmediate: _setImmediate, | 741 | setImmediate: _setImmediate, |
| 737 | asap | 742 | asap, |
| 743 | isIterable | ||
| 738 | }; | 744 | }; |
@@ -1,6 +1,6 @@ | |||
| 1 | { | 1 | { |
| 2 | "name": "axios", | 2 | "name": "axios", |
| 3 | "version": "1.8.4", | 3 | "version": "1.9.0", |
| 4 | "description": "Promise based HTTP client for the browser and node.js", | 4 | "description": "Promise based HTTP client for the browser and node.js", |
| 5 | "main": "index.js", | 5 | "main": "index.js", |
| 6 | "exports": { | 6 | "exports": { |
@@ -167,10 +167,10 @@ | |||
| 167 | "Justin Beckwith (https://github.com/JustinBeckwith)", | 167 | "Justin Beckwith (https://github.com/JustinBeckwith)", |
| 168 | "Martti Laine (https://github.com/codeclown)", | 168 | "Martti Laine (https://github.com/codeclown)", |
| 169 | "Xianming Zhong (https://github.com/chinesedfan)", | 169 | "Xianming Zhong (https://github.com/chinesedfan)", |
| 170 | "Rikki Gibson (https://github.com/RikkiGibson)", | ||
| 170 | "Remco Haszing (https://github.com/remcohaszing)", | 171 | "Remco Haszing (https://github.com/remcohaszing)", |
| 171 | "Rikki Gibson (https://github.com/RikkiGibson)", | ||
| 172 | "Ben Carp (https://github.com/carpben)", | ||
| 173 | "Yasu Flores (https://github.com/yasuf)" | 172 | "Yasu Flores (https://github.com/yasuf)", |
| 173 | "Ben Carp (https://github.com/carpben)" | ||
| 174 | ], | 174 | ], |
| 175 | "sideEffects": false, | 175 | "sideEffects": false, |
| 176 | "release-it": { | 176 | "release-it": { |
@@ -1,5 +1,32 @@ | |||
| 1 | # Changelog | 1 | # Changelog |
| 2 | 2 | ||
| 3 | # [1.9.0](https://github.com/axios/axios/compare/v1.8.4...v1.9.0) (2025-04-24) | ||
| 4 | |||
| 5 | |||
| 6 | ### Bug Fixes | ||
| 7 | |||
| 8 | * **core:** fix the Axios constructor implementation to treat the config argument as optional; ([#6881](https://github.com/axios/axios/issues/6881)) ([6c5d4cd](https://github.com/axios/axios/commit/6c5d4cd69286868059c5e52d45085cb9a894a983)) | ||
| 9 | * **fetch:** fixed ERR_NETWORK mapping for Safari browsers; ([#6767](https://github.com/axios/axios/issues/6767)) ([dfe8411](https://github.com/axios/axios/commit/dfe8411c9a082c3d068bdd1f8d6e73054f387f45)) | ||
| 10 | * **headers:** allow iterable objects to be a data source for the set method; ([#6873](https://github.com/axios/axios/issues/6873)) ([1b1f9cc](https://github.com/axios/axios/commit/1b1f9ccdc15f1ea745160ec9a5223de9db4673bc)) | ||
| 11 | * **headers:** fix `getSetCookie` by using 'get' method for caseless access; ([#6874](https://github.com/axios/axios/issues/6874)) ([d4f7df4](https://github.com/axios/axios/commit/d4f7df4b304af8b373488fdf8e830793ff843eb9)) | ||
| 12 | * **headers:** fixed support for setting multiple header values from an iterated source; ([#6885](https://github.com/axios/axios/issues/6885)) ([f7a3b5e](https://github.com/axios/axios/commit/f7a3b5e0f7e5e127b97defa92a132fbf1b55cf15)) | ||
| 13 | * **http:** send minimal end multipart boundary ([#6661](https://github.com/axios/axios/issues/6661)) ([987d2e2](https://github.com/axios/axios/commit/987d2e2dd3b362757550f36eab875e60640b6ddc)) | ||
| 14 | * **types:** fix autocomplete for adapter config ([#6855](https://github.com/axios/axios/issues/6855)) ([e61a893](https://github.com/axios/axios/commit/e61a8934d8f94dd429a2f309b48c67307c700df0)) | ||
| 15 | |||
| 16 | |||
| 17 | ### Features | ||
| 18 | |||
| 19 | * **AxiosHeaders:** add getSetCookie method to retrieve set-cookie headers values ([#5707](https://github.com/axios/axios/issues/5707)) ([80ea756](https://github.com/axios/axios/commit/80ea756e72bcf53110fa792f5d7ab76e8b11c996)) | ||
| 20 | |||
| 21 | ### Contributors to this release | ||
| 22 | |||
| 23 | - <img src="https://avatars.githubusercontent.com/u/12586868?v=4&s=18" alt="avatar" width="18"/> [Dmitriy Mozgovoy](https://github.com/DigitalBrainJS "+200/-34 (#6890 #6889 #6888 #6885 #6881 #6767 #6874 #6873 )") | ||
| 24 | - <img src="https://avatars.githubusercontent.com/u/4814473?v=4&s=18" alt="avatar" width="18"/> [Jay](https://github.com/jasonsaayman "+26/-1 ()") | ||
| 25 | - <img src="https://avatars.githubusercontent.com/u/22686401?v=4&s=18" alt="avatar" width="18"/> [Willian Agostini](https://github.com/WillianAgostini "+21/-0 (#5707 )") | ||
| 26 | - <img src="https://avatars.githubusercontent.com/u/2500247?v=4&s=18" alt="avatar" width="18"/> [George Cheng](https://github.com/Gerhut "+3/-3 (#5096 )") | ||
| 27 | - <img src="https://avatars.githubusercontent.com/u/30260221?v=4&s=18" alt="avatar" width="18"/> [FatahChan](https://github.com/FatahChan "+2/-2 (#6855 )") | ||
| 28 | - <img src="https://avatars.githubusercontent.com/u/49002?v=4&s=18" alt="avatar" width="18"/> [Ionuț G. Stan](https://github.com/igstan "+1/-1 (#6661 )") | ||
| 29 | |||
| 3 | ## [1.8.4](https://github.com/axios/axios/compare/v1.8.3...v1.8.4) (2025-03-19) | 30 | ## [1.8.4](https://github.com/axios/axios/compare/v1.8.3...v1.8.4) (2025-03-19) |
| 4 | 31 | ||
| 5 | 32 | ||
@@ -1,13 +1,13 @@ | |||
| 1 | 1 | ||
| 2 | <h3 align="center"> 🥇 Gold sponsors <br> </h3> <table align="center" width="100%"><tr width="33.333333333333336%"><td align="center" width="33.333333333333336%"> <a href="https://stytch.com/?utm_source=oss-sponsorship&utm_medium=paid_sponsorship&utm_content=website-link&utm_campaign=axios-http" style="padding: 10px; display: inline-block"> <picture> <source width="200px" height="38px" media="(prefers-color-scheme: dark)" srcset="https://axios-http.com/assets/sponsors/stytch_white.png"> <img width="200px" height="38px" src="https://axios-http.com/assets/sponsors/stytch.png" alt="Stytch"/> </picture> </a> <p align="center" title="API-first authentication, authorization, and fraud prevention">API-first authentication, authorization, and fraud prevention</p> <p align="center"> <a href="https://stytch.com/?utm_source=oss-sponsorship&utm_medium=paid_sponsorship&utm_content=website-link&utm_campaign=axios-http"><b>Website</b></a> | <a href="https://stytch.com/docs?utm_source=oss-sponsorship&utm_medium=paid_sponsorship&utm_content=docs-link&utm_campaign=axios-http"><b>Documentation</b></a> | <a href="https://github.com/stytchauth/stytch-node?utm_source=oss-sponsorship&utm_medium=paid_sponsorship&utm_content=node-sdk&utm_campaign=axios-http"><b>Node.js</b></a> </p> | 2 | <h3 align="center"> 🥇 Gold sponsors <br> </h3> <table align="center" width="100%"><tr width="33.333333333333336%"><td align="center" width="33.333333333333336%"> <a href="https://stytch.com/?utm_source=oss-sponsorship&utm_medium=paid_sponsorship&utm_content=website-link&utm_campaign=axios-http" style="padding: 10px; display: inline-block"> <picture> <source width="200px" height="38px" media="(prefers-color-scheme: dark)" srcset="https://axios-http.com/assets/sponsors/stytch_white.png"> <img width="200px" height="38px" src="https://axios-http.com/assets/sponsors/stytch.png" alt="Stytch"/> </picture> </a> <p align="center" title="API-first authentication, authorization, and fraud prevention">API-first authentication, authorization, and fraud prevention</p> <p align="center"> <a href="https://stytch.com/?utm_source=oss-sponsorship&utm_medium=paid_sponsorship&utm_content=website-link&utm_campaign=axios-http"><b>Website</b></a> | <a href="https://stytch.com/docs?utm_source=oss-sponsorship&utm_medium=paid_sponsorship&utm_content=docs-link&utm_campaign=axios-http"><b>Documentation</b></a> | <a href="https://github.com/stytchauth/stytch-node?utm_source=oss-sponsorship&utm_medium=paid_sponsorship&utm_content=node-sdk&utm_campaign=axios-http"><b>Node.js</b></a> </p> |
| 3 | </td><td align="center" width="33.333333333333336%"> <a href="https://www.principal.com/about-us?utm_source=axios&utm_medium=sponsorlist&utm_campaign=sponsorship" style="padding: 10px; display: inline-block"> <img width="133px" height="43px" src="https://axios-http.com/assets/sponsors/principal.svg" alt="Principal Financial Group"/> </a> <p align="center" title="We’re bound by one common purpose: to give you the financial tools, resources and information you need to live your best life.">We’re bound by one common purpose: to give you the financial tools, resources and information you ne...</p> <p align="center"> <a href="https://www.principal.com/about-us?utm_source=axios&utm_medium=readme_sponsorlist&utm_campaign=sponsorship"><b>www.principal.com</b></a> </p> | 3 | </td><td align="center" width="33.333333333333336%"> <a href="https://www.principal.com/about-us?utm_source=axios&utm_medium=sponsorlist&utm_campaign=sponsorship" style="padding: 10px; display: inline-block"> <img width="133px" height="43px" src="https://axios-http.com/assets/sponsors/principal.svg" alt="Principal Financial Group"/> </a> <p align="center" title="We’re bound by one common purpose: to give you the financial tools, resources and information you need to live your best life.">We’re bound by one common purpose: to give you the financial tools, resources and information you ne...</p> <p align="center"> <a href="https://www.principal.com/about-us?utm_source=axios&utm_medium=readme_sponsorlist&utm_campaign=sponsorship"><b>www.principal.com</b></a> </p> |
| 4 | </td><td align="center" width="33.333333333333336%"> <a href="https://www.descope.com/?utm_source=axios&utm_medium=referral&utm_campaign=axios-oss-sponsorship" style="padding: 10px; display: inline-block"> <picture> <source width="200px" height="52px" media="(prefers-color-scheme: dark)" srcset="https://axios-http.com/assets/sponsors/descope_white.png"> <img width="200px" height="52px" src="https://axios-http.com/assets/sponsors/descope.png" alt="Descope"/> </picture> </a> <p align="center" title="Hi, we're Descope! We are building something in the authentication space for app developers and can’t wait to place it in your hands.">Hi, we're Descope! We are building something in the authentication space for app developers and...</p> <p align="center"> <a href="https://www.descope.com/?utm_source=axios&utm_medium=referral&utm_campaign=axios-oss-sponsorship"><b>Website</b></a> | <a href="https://docs.descope.com/?utm_source=axios&utm_medium=referral&utm_campaign=axios-oss-sponsorship"><b>Documentation</b></a> | <a href="https://www.descope.com/community?utm_source=axios&utm_medium=referral&utm_campaign=axios-oss-sponsorship"><b>Community</b></a> </p> | ||
| 5 | </td></tr><tr width="33.333333333333336%"><td align="center" width="33.333333333333336%"> <a href="https://buzzoid.com/buy-instagram-followers/?utm_source=axios&utm_medium=sponsorlist&utm_campaign=sponsorship" style="padding: 10px; display: inline-block"> <img width="62px" height="70px" src="https://axios-http.com/assets/sponsors/opencollective/buzzoid-buy-instagram-followers.png" alt="Buzzoid - Buy Instagram Followers"/> </a> <p align="center" title="At Buzzoid, you can buy Instagram followers quickly, safely, and easily with just a few clicks. Rated world's #1 IG service since 2012.">At Buzzoid, you can buy Instagram followers quickly, safely, and easily with just a few clicks. Rate...</p> <p align="center"> <a href="https://buzzoid.com/buy-instagram-followers/?utm_source=axios&utm_medium=readme_sponsorlist&utm_campaign=sponsorship"><b>buzzoid.com</b></a> </p> | 4 | </td><td align="center" width="33.333333333333336%"> <a href="https://twicsy.com/buy-instagram-followers?utm_source=axios&utm_medium=sponsorlist&utm_campaign=sponsorship" style="padding: 10px; display: inline-block"> <img width="85px" height="70px" src="https://axios-http.com/assets/sponsors/opencollective/buy-instagram-followers-twicsy.png" alt="Buy Instagram Followers Twicsy"/> </a> <p align="center" title="Buy real Instagram followers from Twicsy starting at only $2.97. Twicsy has been voted the best site to buy followers from the likes of US Magazine.">Buy real Instagram followers from Twicsy starting at only $2.97. Twicsy has been voted the best site...</p> <p align="center"> <a href="https://twicsy.com/buy-instagram-followers?utm_source=axios&utm_medium=readme_sponsorlist&utm_campaign=sponsorship"><b>twicsy.com</b></a> </p> |
| 5 | </td></tr><tr width="33.333333333333336%"><td align="center" width="33.333333333333336%"> <a href="https://www.descope.com/?utm_source=axios&utm_medium=referral&utm_campaign=axios-oss-sponsorship" style="padding: 10px; display: inline-block"> <picture> <source width="200px" height="52px" media="(prefers-color-scheme: dark)" srcset="https://axios-http.com/assets/sponsors/descope_white.png"> <img width="200px" height="52px" src="https://axios-http.com/assets/sponsors/descope.png" alt="Descope"/> </picture> </a> <p align="center" title="Hi, we're Descope! We are building something in the authentication space for app developers and can’t wait to place it in your hands.">Hi, we're Descope! We are building something in the authentication space for app developers and...</p> <p align="center"> <a href="https://www.descope.com/?utm_source=axios&utm_medium=referral&utm_campaign=axios-oss-sponsorship"><b>Website</b></a> | <a href="https://docs.descope.com/?utm_source=axios&utm_medium=referral&utm_campaign=axios-oss-sponsorship"><b>Docs</b></a> | <a href="https://www.descope.com/community?utm_source=axios&utm_medium=referral&utm_campaign=axios-oss-sponsorship"><b>Community</b></a> </p> | ||
| 6 | </td><td align="center" width="33.333333333333336%"> <a href="https://buzzoid.com/buy-instagram-followers/?utm_source=axios&utm_medium=sponsorlist&utm_campaign=sponsorship" style="padding: 10px; display: inline-block"> <img width="62px" height="70px" src="https://axios-http.com/assets/sponsors/opencollective/buzzoid-buy-instagram-followers.png" alt="Buzzoid - Buy Instagram Followers"/> </a> <p align="center" title="At Buzzoid, you can buy Instagram followers quickly, safely, and easily with just a few clicks. Rated world's #1 IG service since 2012.">At Buzzoid, you can buy Instagram followers quickly, safely, and easily with just a few clicks. Rate...</p> <p align="center"> <a href="https://buzzoid.com/buy-instagram-followers/?utm_source=axios&utm_medium=readme_sponsorlist&utm_campaign=sponsorship"><b>buzzoid.com</b></a> </p> | ||
| 6 | </td><td align="center" width="33.333333333333336%"> <a href="https://www.famety.com/?utm_source=axios&utm_medium=sponsorlist&utm_campaign=sponsorship" style="padding: 10px; display: inline-block"> <img width="70px" height="70px" src="https://axios-http.com/assets/sponsors/opencollective/famety-buy-instagram-followers.png" alt="Famety - Buy Instagram Followers"/> </a> <p align="center" title="At Famety, you can grow your social media following quickly, safely, and easily with just a few clicks. Rated the world’s #1 social media service since 2013.">At Famety, you can grow your social media following quickly, safely, and easily with just a few clic...</p> <p align="center"> <a href="https://www.famety.com/?utm_source=axios&utm_medium=readme_sponsorlist&utm_campaign=sponsorship"><b>www.famety.com</b></a> </p> | 7 | </td><td align="center" width="33.333333333333336%"> <a href="https://www.famety.com/?utm_source=axios&utm_medium=sponsorlist&utm_campaign=sponsorship" style="padding: 10px; display: inline-block"> <img width="70px" height="70px" src="https://axios-http.com/assets/sponsors/opencollective/famety-buy-instagram-followers.png" alt="Famety - Buy Instagram Followers"/> </a> <p align="center" title="At Famety, you can grow your social media following quickly, safely, and easily with just a few clicks. Rated the world’s #1 social media service since 2013.">At Famety, you can grow your social media following quickly, safely, and easily with just a few clic...</p> <p align="center"> <a href="https://www.famety.com/?utm_source=axios&utm_medium=readme_sponsorlist&utm_campaign=sponsorship"><b>www.famety.com</b></a> </p> |
| 7 | </td><td align="center" width="33.333333333333336%"> <a href="https://poprey.com/?utm_source=axios&utm_medium=sponsorlist&utm_campaign=sponsorship" style="padding: 10px; display: inline-block"> <img width="70px" height="70px" src="https://axios-http.com/assets/sponsors/opencollective/instagram-likes.png" alt="Poprey - Buy Instagram Likes"/> </a> <p align="center" title="Buy Instagram Likes">Buy Instagram Likes</p> <p align="center"> <a href="https://poprey.com/?utm_source=axios&utm_medium=readme_sponsorlist&utm_campaign=sponsorship"><b>poprey.com</b></a> </p> | ||
| 8 | </td></tr><tr width="33.333333333333336%"><td align="center" width="33.333333333333336%"> <a href="https://musicza.co.za/?utm_source=axios&utm_medium=sponsorlist&utm_campaign=sponsorship" style="padding: 10px; display: inline-block"> <img width="124px" height="52px" src="https://axios-http.com/assets/sponsors/opencollective/musicza.png" alt="Tubidy"/> </a> <p align="center" title="Tubidy: Free Music and Video Downloads | MP3, MP4">Tubidy: Free Music and Video Downloads | MP3, MP4</p> <p align="center"> <a href="https://musicza.co.za/?utm_source=axios&utm_medium=readme_sponsorlist&utm_campaign=sponsorship"><b>musicza.co.za</b></a> </p> | 8 | </td></tr><tr width="33.333333333333336%"><td align="center" width="33.333333333333336%"> <a href="https://poprey.com/?utm_source=axios&utm_medium=sponsorlist&utm_campaign=sponsorship" style="padding: 10px; display: inline-block"> <img width="70px" height="70px" src="https://axios-http.com/assets/sponsors/opencollective/instagram-likes.png" alt="Poprey - Buy Instagram Likes"/> </a> <p align="center" title="Buy Instagram Likes">Buy Instagram Likes</p> <p align="center"> <a href="https://poprey.com/?utm_source=axios&utm_medium=readme_sponsorlist&utm_campaign=sponsorship"><b>poprey.com</b></a> </p> |
| 9 | </td><td align="center" width="33.333333333333336%"> <a href="https://betking.com.ua/sports-book/?utm_source=axios&utm_medium=sponsorlist&utm_campaign=sponsorship" style="padding: 10px; display: inline-block"> <img width="70px" height="70px" src="https://axios-http.com/assets/sponsors/opencollective/bukmeker.jpeg" alt="Букмекер"/> </a> <p align="center" title="Ставки на спорт, БК в Україні">Ставки на спорт, БК в Україні</p> <p align="center"> <a href="https://betking.com.ua/sports-book/?utm_source=axios&utm_medium=readme_sponsorlist&utm_campaign=sponsorship"><b>betking.com.ua</b></a> </p> | ||
| 9 | </td><td align="center" width="33.333333333333336%"> <a href="https://ssmarket.net/buy-youtube-subscribers?utm_source=axios&utm_medium=sponsorlist&utm_campaign=sponsorship" style="padding: 10px; display: inline-block"> <img width="70px" height="70px" src="https://axios-http.com/assets/sponsors/opencollective/youtube-subscribers-ssmarket.png" alt="Buy Youtube Subscribers"/> </a> <p align="center" title="SS Market offers professional social media services that rapidly increase your YouTube subscriber count, elevating your channel to a powerful position.">SS Market offers professional social media services that rapidly increase your YouTube subscriber co...</p> <p align="center"> <a href="https://ssmarket.net/buy-youtube-subscribers?utm_source=axios&utm_medium=readme_sponsorlist&utm_campaign=sponsorship"><b>ssmarket.net</b></a> </p> | 10 | </td><td align="center" width="33.333333333333336%"> <a href="https://ssmarket.net/buy-youtube-subscribers?utm_source=axios&utm_medium=sponsorlist&utm_campaign=sponsorship" style="padding: 10px; display: inline-block"> <img width="70px" height="70px" src="https://axios-http.com/assets/sponsors/opencollective/youtube-subscribers-ssmarket.png" alt="Buy Youtube Subscribers"/> </a> <p align="center" title="SS Market offers professional social media services that rapidly increase your YouTube subscriber count, elevating your channel to a powerful position.">SS Market offers professional social media services that rapidly increase your YouTube subscriber co...</p> <p align="center"> <a href="https://ssmarket.net/buy-youtube-subscribers?utm_source=axios&utm_medium=readme_sponsorlist&utm_campaign=sponsorship"><b>ssmarket.net</b></a> </p> |
| 10 | </td><td align="center" width="33.333333333333336%"> <a href="https://twicsy.com/buy-instagram-followers?utm_source=axios&utm_medium=sponsorlist&utm_campaign=sponsorship" style="padding: 10px; display: inline-block"> <img width="85px" height="70px" src="https://axios-http.com/assets/sponsors/opencollective/buy-instagram-followers-twicsy.png" alt="Buy Instagram Followers Twicsy"/> </a> <p align="center" title="Buy real Instagram followers from Twicsy starting at only $2.97. Twicsy has been voted the best site to buy followers from the likes of US Magazine.">Buy real Instagram followers from Twicsy starting at only $2.97. Twicsy has been voted the best site...</p> <p align="center"> <a href="https://twicsy.com/buy-instagram-followers?utm_source=axios&utm_medium=readme_sponsorlist&utm_campaign=sponsorship"><b>twicsy.com</b></a> </p> | ||
| 11 | </td></tr><tr width="33.333333333333336%"><td align="center" width="33.333333333333336%"> <a href="https://opencollective.com/axios/contribute">💜 Become a sponsor</a> | 11 | </td></tr><tr width="33.333333333333336%"><td align="center" width="33.333333333333336%"> <a href="https://opencollective.com/axios/contribute">💜 Become a sponsor</a> |
| 12 | </td><td align="center" width="33.333333333333336%"> <a href="https://opencollective.com/axios/contribute">💜 Become a sponsor</a> | 12 | </td><td align="center" width="33.333333333333336%"> <a href="https://opencollective.com/axios/contribute">💜 Become a sponsor</a> |
| 13 | </td><td align="center" width="33.333333333333336%"> <a href="https://opencollective.com/axios/contribute">💜 Become a sponsor</a> | 13 | </td><td align="center" width="33.333333333333336%"> <a href="https://opencollective.com/axios/contribute">💜 Become a sponsor</a> |
@@ -74,6 +74,8 @@ | |||
| 74 | getAuthorization(matcher?: AxiosHeaderMatcher): AxiosHeaderValue; | 74 | getAuthorization(matcher?: AxiosHeaderMatcher): AxiosHeaderValue; |
| 75 | hasAuthorization(matcher?: AxiosHeaderMatcher): boolean; | 75 | hasAuthorization(matcher?: AxiosHeaderMatcher): boolean; |
| 76 | 76 | ||
| 77 | getSetCookie(): string[]; | ||
| 78 | |||
| 77 | [Symbol.iterator](): IterableIterator<[string, AxiosHeaderValue]>; | 79 | [Symbol.iterator](): IterableIterator<[string, AxiosHeaderValue]>; |
| 78 | } | 80 | } |
| 79 | 81 | ||
@@ -300,7 +302,7 @@ | |||
| 300 | 302 | ||
| 301 | type Milliseconds = number; | 303 | type Milliseconds = number; |
| 302 | 304 | ||
| 303 | type AxiosAdapterName = 'fetch' | 'xhr' | 'http' | string; | 305 | type AxiosAdapterName = 'fetch' | 'xhr' | 'http' | (string & {}); |
| 304 | 306 | ||
| 305 | type AxiosAdapterConfig = AxiosAdapter | AxiosAdapterName; | 307 | type AxiosAdapterConfig = AxiosAdapter | AxiosAdapterName; |
| 306 | 308 | ||
@@ -512,6 +514,7 @@ | |||
| 512 | <T = any, R = AxiosResponse<T>, D = any>(config: AxiosRequestConfig<D>): Promise<R>; | 514 | <T = any, R = AxiosResponse<T>, D = any>(config: AxiosRequestConfig<D>): Promise<R>; |
| 513 | <T = any, R = AxiosResponse<T>, D = any>(url: string, config?: AxiosRequestConfig<D>): Promise<R>; | 515 | <T = any, R = AxiosResponse<T>, D = any>(url: string, config?: AxiosRequestConfig<D>): Promise<R>; |
| 514 | 516 | ||
| 517 | create(config?: CreateAxiosDefaults): AxiosInstance; | ||
| 515 | defaults: Omit<AxiosDefaults, 'headers'> & { | 518 | defaults: Omit<AxiosDefaults, 'headers'> & { |
| 516 | headers: HeadersDefaults & { | 519 | headers: HeadersDefaults & { |
| 517 | [key: string]: AxiosHeaderValue | 520 | [key: string]: AxiosHeaderValue |
@@ -546,7 +549,6 @@ | |||
| 546 | export function mergeConfig<D = any>(config1: AxiosRequestConfig<D>, config2: AxiosRequestConfig<D>): AxiosRequestConfig<D>; | 549 | export function mergeConfig<D = any>(config1: AxiosRequestConfig<D>, config2: AxiosRequestConfig<D>): AxiosRequestConfig<D>; |
| 547 | 550 | ||
| 548 | export interface AxiosStatic extends AxiosInstance { | 551 | export interface AxiosStatic extends AxiosInstance { |
| 549 | create(config?: CreateAxiosDefaults): AxiosInstance; | ||
| 550 | Cancel: CancelStatic; | 552 | Cancel: CancelStatic; |
| 551 | CancelToken: CancelTokenStatic; | 553 | CancelToken: CancelTokenStatic; |
| 552 | Axios: typeof Axios; | 554 | Axios: typeof Axios; |
Publish
Install