axios 0.24.0 → 0.25.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.
- package/CHANGELOG.md +56 -1
- package/README.md +16 -0
- package/UPGRADE_GUIDE.md +6 -0
- package/dist/axios.js +2 -0
- package/dist/axios.min.js +2 -0
- package/index.d.ts +17 -2
- package/lib/adapters/http.js +32 -7
- package/lib/core/Axios.js +12 -5
- package/lib/env/data.js +1 -1
- package/lib/helpers/isAbsoluteURL.js +1 -1
- package/lib/helpers/isAxiosError.js +3 -1
- package/lib/helpers/toFormData.js +55 -0
- package/lib/utils.js +4 -4
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
@@ -1,9 +1,64 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
### 0.25.0 (January 18, 2022)
|
4
|
+
|
5
|
+
Breaking changes:
|
6
|
+
- Fixing maxBodyLength enforcement ([#3786](https://github.com/axios/axios/pull/3786))
|
7
|
+
- Don't rely on strict mode behaviour for arguments ([#3470](https://github.com/axios/axios/pull/3470))
|
8
|
+
- Adding error handling when missing url ([#3791](https://github.com/axios/axios/pull/3791))
|
9
|
+
- Update isAbsoluteURL.js removing escaping of non-special characters ([#3809](https://github.com/axios/axios/pull/3809))
|
10
|
+
- Use native Array.isArray() in utils.js ([#3836](https://github.com/axios/axios/pull/3836))
|
11
|
+
- Adding error handling inside stream end callback ([#3967](https://github.com/axios/axios/pull/3967))
|
12
|
+
|
13
|
+
Fixes and Functionality:
|
14
|
+
- Added aborted even handler ([#3916](https://github.com/axios/axios/pull/3916))
|
15
|
+
- Header types expanded allowing `boolean` and `number` types ([#4144](https://github.com/axios/axios/pull/4144))
|
16
|
+
- Fix cancel signature allowing cancel message to be `undefined` ([#3153](https://github.com/axios/axios/pull/3153))
|
17
|
+
- Updated type checks to be formulated better ([#3342](https://github.com/axios/axios/pull/3342))
|
18
|
+
- Avoid unnecessary buffer allocations ([#3321](https://github.com/axios/axios/pull/3321))
|
19
|
+
- Adding a socket handler to keep TCP connection live when processing long living requests ([#3422](https://github.com/axios/axios/pull/3422))
|
20
|
+
- Added toFormData helper function ([#3757](https://github.com/axios/axios/pull/3757))
|
21
|
+
- Adding responseEncoding prop type in AxiosRequestConfig ([#3918](https://github.com/axios/axios/pull/3918))
|
22
|
+
|
23
|
+
Internal and Tests:
|
24
|
+
- Adding axios-test-instance to ecosystem ([#3786](https://github.com/axios/axios/pull/3786))
|
25
|
+
- Optimize the logic of isAxiosError ([#3546](https://github.com/axios/axios/pull/3546))
|
26
|
+
- Add tests and documentation to display how multiple inceptors work ([#3564](https://github.com/axios/axios/pull/3564))
|
27
|
+
- Updating follow-redirects to version 1.14.7 ([#4379](https://github.com/axios/axios/pull/4379))
|
28
|
+
|
29
|
+
|
30
|
+
Documentation:
|
31
|
+
- Fixing changelog to show corrext pull request ([#4219](https://github.com/axios/axios/pull/4219))
|
32
|
+
- Update upgrade guide for https proxy setting ([#3604](https://github.com/axios/axios/pull/3604))
|
33
|
+
|
34
|
+
Huge thanks to everyone who contributed to this release via code (authors listed below) or via reviews and triaging on GitHub:
|
35
|
+
|
36
|
+
- [Jay](mailto:jasonsaayman@gmail.com)
|
37
|
+
- [Rijk van Zanten](https://github.com/rijkvanzanten)
|
38
|
+
- [Kohta Ito](https://github.com/koh110)
|
39
|
+
- [Brandon Faulkner](https://github.com/bfaulk96)
|
40
|
+
- [Stefano Magni](https://github.com/NoriSte)
|
41
|
+
- [enofan](https://github.com/fanguangyi)
|
42
|
+
- [Andrey Pechkurov](https://github.com/puzpuzpuz)
|
43
|
+
- [Doowonee](https://github.com/doowonee)
|
44
|
+
- [Emil Broman](https://github.com/emilbroman-eqt)
|
45
|
+
- [Remco Haszing](https://github.com/remcohaszing)
|
46
|
+
- [Black-Hole](https://github.com/BlackHole1)
|
47
|
+
- [Wolfram Kriesing](https://github.com/wolframkriesing)
|
48
|
+
- [Andrew Ovens](https://github.com/repl-andrew-ovens)
|
49
|
+
- [Paulo Renato](https://github.com/PauloRSF)
|
50
|
+
- [Ben Carp](https://github.com/carpben)
|
51
|
+
- [Hirotaka Tagawa](https://github.com/wafuwafu13)
|
52
|
+
- [狼族小狈](https://github.com/lzxb)
|
53
|
+
- [C. Lewis](https://github.com/ctjlewis)
|
54
|
+
- [Felipe Carvalho](https://github.com/FCarvalhoVII)
|
55
|
+
- [Daniel](https://github.com/djs113)
|
56
|
+
- [Gustavo Sales](https://github.com/gussalesdev)
|
57
|
+
|
3
58
|
### 0.24.0 (October 25, 2021)
|
4
59
|
|
5
60
|
Breaking changes:
|
6
|
-
- Revert: change type of AxiosResponse to any, please read lengthy discussion here: ([4141](https://github.com/axios/axios/issues/4141)) pull request: ([#
|
61
|
+
- Revert: change type of AxiosResponse to any, please read lengthy discussion here: ([#4141](https://github.com/axios/axios/issues/4141)) pull request: ([#4186](https://github.com/axios/axios/pull/4186))
|
7
62
|
|
8
63
|
Huge thanks to everyone who contributed to this release via code (authors listed below) or via reviews and triaging on GitHub:
|
9
64
|
|
package/README.md
CHANGED
@@ -32,6 +32,7 @@ Promise based HTTP client for the browser and node.js
|
|
32
32
|
- [Custom instance defaults](#custom-instance-defaults)
|
33
33
|
- [Config order of precedence](#config-order-of-precedence)
|
34
34
|
- [Interceptors](#interceptors)
|
35
|
+
- [Multiple Interceptors](#multiple-interceptors)
|
35
36
|
- [Handling Errors](#handling-errors)
|
36
37
|
- [Cancellation](#cancellation)
|
37
38
|
- [Using application/x-www-form-urlencoded format](#using-applicationx-www-form-urlencoded-format)
|
@@ -645,6 +646,21 @@ axios.interceptors.request.use(function (config) {
|
|
645
646
|
}, null, { runWhen: onGetCall });
|
646
647
|
```
|
647
648
|
|
649
|
+
### Multiple Interceptors
|
650
|
+
|
651
|
+
Given you add multiple response interceptors
|
652
|
+
and when the response was fulfilled
|
653
|
+
- then each interceptor is executed
|
654
|
+
- then they are executed in the order they were added
|
655
|
+
- then only the last interceptor's result is returned
|
656
|
+
- then every interceptor receives the result of it's predecessor
|
657
|
+
- and when the fulfillment-interceptor throws
|
658
|
+
- then the following fulfillment-interceptor is not called
|
659
|
+
- then the following rejection-interceptor is called
|
660
|
+
- once caught, another following fulfill-interceptor is called again (just like in a promise chain).
|
661
|
+
|
662
|
+
Read [the interceptor tests](./test/specs/interceptors.spec.js) for seeing all this in code.
|
663
|
+
|
648
664
|
## Handling Errors
|
649
665
|
|
650
666
|
```js
|
package/UPGRADE_GUIDE.md
CHANGED
package/dist/axios.js
CHANGED
package/dist/axios.min.js
CHANGED
@@ -1,2 +1,4 @@
|
|
1
|
+
/* axios v0.25.0 | (c) 2022 by Matt Zabriskie */
|
2
|
+
/* axios v0.24.0 | (c) 2022 by Matt Zabriskie */
|
1
3
|
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.axios=t():e.axios=t()}(this,(function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=11)}([function(e,t,n){"use strict";var r=n(3),o=Object.prototype.toString;function i(e){return"[object Array]"===o.call(e)}function s(e){return void 0===e}function a(e){return null!==e&&"object"==typeof e}function u(e){if("[object Object]"!==o.call(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function c(e){return"[object Function]"===o.call(e)}function f(e,t){if(null!=e)if("object"!=typeof e&&(e=[e]),i(e))for(var n=0,r=e.length;n<r;n++)t.call(null,e[n],n,e);else for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.call(null,e[o],o,e)}e.exports={isArray:i,isArrayBuffer:function(e){return"[object ArrayBuffer]"===o.call(e)},isBuffer:function(e){return null!==e&&!s(e)&&null!==e.constructor&&!s(e.constructor)&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)},isFormData:function(e){return"undefined"!=typeof FormData&&e instanceof FormData},isArrayBufferView:function(e){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&e.buffer instanceof ArrayBuffer},isString:function(e){return"string"==typeof e},isNumber:function(e){return"number"==typeof e},isObject:a,isPlainObject:u,isUndefined:s,isDate:function(e){return"[object Date]"===o.call(e)},isFile:function(e){return"[object File]"===o.call(e)},isBlob:function(e){return"[object Blob]"===o.call(e)},isFunction:c,isStream:function(e){return a(e)&&c(e.pipe)},isURLSearchParams:function(e){return"undefined"!=typeof URLSearchParams&&e instanceof URLSearchParams},isStandardBrowserEnv:function(){return("undefined"==typeof navigator||"ReactNative"!==navigator.product&&"NativeScript"!==navigator.product&&"NS"!==navigator.product)&&("undefined"!=typeof window&&"undefined"!=typeof document)},forEach:f,merge:function e(){var t={};function n(n,r){u(t[r])&&u(n)?t[r]=e(t[r],n):u(n)?t[r]=e({},n):i(n)?t[r]=n.slice():t[r]=n}for(var r=0,o=arguments.length;r<o;r++)f(arguments[r],n);return t},extend:function(e,t,n){return f(t,(function(t,o){e[o]=n&&"function"==typeof t?r(t,n):t})),e},trim:function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")},stripBOM:function(e){return 65279===e.charCodeAt(0)&&(e=e.slice(1)),e}}},function(e,t,n){"use strict";var r=n(0),o=n(17),i=n(5),s={"Content-Type":"application/x-www-form-urlencoded"};function a(e,t){!r.isUndefined(e)&&r.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}var u,c={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:(("undefined"!=typeof XMLHttpRequest||"undefined"!=typeof process&&"[object process]"===Object.prototype.toString.call(process))&&(u=n(6)),u),transformRequest:[function(e,t){return o(t,"Accept"),o(t,"Content-Type"),r.isFormData(e)||r.isArrayBuffer(e)||r.isBuffer(e)||r.isStream(e)||r.isFile(e)||r.isBlob(e)?e:r.isArrayBufferView(e)?e.buffer:r.isURLSearchParams(e)?(a(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):r.isObject(e)||t&&"application/json"===t["Content-Type"]?(a(t,"application/json"),function(e,t,n){if(r.isString(e))try{return(t||JSON.parse)(e),r.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(n||JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){var t=this.transitional||c.transitional,n=t&&t.silentJSONParsing,o=t&&t.forcedJSONParsing,s=!n&&"json"===this.responseType;if(s||o&&r.isString(e)&&e.length)try{return JSON.parse(e)}catch(e){if(s){if("SyntaxError"===e.name)throw i(e,this,"E_JSON_PARSE");throw e}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};r.forEach(["delete","get","head"],(function(e){c.headers[e]={}})),r.forEach(["post","put","patch"],(function(e){c.headers[e]=r.merge(s)})),e.exports=c},function(e,t,n){"use strict";function r(e){this.message=e}r.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},r.prototype.__CANCEL__=!0,e.exports=r},function(e,t,n){"use strict";e.exports=function(e,t){return function(){for(var n=new Array(arguments.length),r=0;r<n.length;r++)n[r]=arguments[r];return e.apply(t,n)}}},function(e,t,n){"use strict";var r=n(0);function o(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}e.exports=function(e,t,n){if(!t)return e;var i;if(n)i=n(t);else if(r.isURLSearchParams(t))i=t.toString();else{var s=[];r.forEach(t,(function(e,t){null!=e&&(r.isArray(e)?t+="[]":e=[e],r.forEach(e,(function(e){r.isDate(e)?e=e.toISOString():r.isObject(e)&&(e=JSON.stringify(e)),s.push(o(t)+"="+o(e))})))})),i=s.join("&")}if(i){var a=e.indexOf("#");-1!==a&&(e=e.slice(0,a)),e+=(-1===e.indexOf("?")?"?":"&")+i}return e}},function(e,t,n){"use strict";e.exports=function(e,t,n,r,o){return e.config=t,n&&(e.code=n),e.request=r,e.response=o,e.isAxiosError=!0,e.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code,status:this.response&&this.response.status?this.response.status:null}},e}},function(e,t,n){"use strict";var r=n(0),o=n(18),i=n(19),s=n(4),a=n(20),u=n(23),c=n(24),f=n(7),l=n(1),p=n(2);e.exports=function(e){return new Promise((function(t,n){var d,h=e.data,m=e.headers,v=e.responseType;function y(){e.cancelToken&&e.cancelToken.unsubscribe(d),e.signal&&e.signal.removeEventListener("abort",d)}r.isFormData(h)&&delete m["Content-Type"];var g=new XMLHttpRequest;if(e.auth){var b=e.auth.username||"",x=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";m.Authorization="Basic "+btoa(b+":"+x)}var w=a(e.baseURL,e.url);function E(){if(g){var r="getAllResponseHeaders"in g?u(g.getAllResponseHeaders()):null,i={data:v&&"text"!==v&&"json"!==v?g.response:g.responseText,status:g.status,statusText:g.statusText,headers:r,config:e,request:g};o((function(e){t(e),y()}),(function(e){n(e),y()}),i),g=null}}if(g.open(e.method.toUpperCase(),s(w,e.params,e.paramsSerializer),!0),g.timeout=e.timeout,"onloadend"in g?g.onloadend=E:g.onreadystatechange=function(){g&&4===g.readyState&&(0!==g.status||g.responseURL&&0===g.responseURL.indexOf("file:"))&&setTimeout(E)},g.onabort=function(){g&&(n(f("Request aborted",e,"ECONNABORTED",g)),g=null)},g.onerror=function(){n(f("Network Error",e,null,g)),g=null},g.ontimeout=function(){var t=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded",r=e.transitional||l.transitional;e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),n(f(t,e,r.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",g)),g=null},r.isStandardBrowserEnv()){var S=(e.withCredentials||c(w))&&e.xsrfCookieName?i.read(e.xsrfCookieName):void 0;S&&(m[e.xsrfHeaderName]=S)}"setRequestHeader"in g&&r.forEach(m,(function(e,t){void 0===h&&"content-type"===t.toLowerCase()?delete m[t]:g.setRequestHeader(t,e)})),r.isUndefined(e.withCredentials)||(g.withCredentials=!!e.withCredentials),v&&"json"!==v&&(g.responseType=e.responseType),"function"==typeof e.onDownloadProgress&&g.addEventListener("progress",e.onDownloadProgress),"function"==typeof e.onUploadProgress&&g.upload&&g.upload.addEventListener("progress",e.onUploadProgress),(e.cancelToken||e.signal)&&(d=function(e){g&&(n(!e||e&&e.type?new p("canceled"):e),g.abort(),g=null)},e.cancelToken&&e.cancelToken.subscribe(d),e.signal&&(e.signal.aborted?d():e.signal.addEventListener("abort",d))),h||(h=null),g.send(h)}))}},function(e,t,n){"use strict";var r=n(5);e.exports=function(e,t,n,o,i){var s=new Error(e);return r(s,t,n,o,i)}},function(e,t,n){"use strict";e.exports=function(e){return!(!e||!e.__CANCEL__)}},function(e,t,n){"use strict";var r=n(0);e.exports=function(e,t){t=t||{};var n={};function o(e,t){return r.isPlainObject(e)&&r.isPlainObject(t)?r.merge(e,t):r.isPlainObject(t)?r.merge({},t):r.isArray(t)?t.slice():t}function i(n){return r.isUndefined(t[n])?r.isUndefined(e[n])?void 0:o(void 0,e[n]):o(e[n],t[n])}function s(e){if(!r.isUndefined(t[e]))return o(void 0,t[e])}function a(n){return r.isUndefined(t[n])?r.isUndefined(e[n])?void 0:o(void 0,e[n]):o(void 0,t[n])}function u(n){return n in t?o(e[n],t[n]):n in e?o(void 0,e[n]):void 0}var c={url:s,method:s,data:s,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:u};return r.forEach(Object.keys(e).concat(Object.keys(t)),(function(e){var t=c[e]||i,o=t(e);r.isUndefined(o)&&t!==u||(n[e]=o)})),n}},function(e,t){e.exports={version:"0.24.0"}},function(e,t,n){e.exports=n(12)},function(e,t,n){"use strict";var r=n(0),o=n(3),i=n(13),s=n(9);var a=function e(t){var n=new i(t),a=o(i.prototype.request,n);return r.extend(a,i.prototype,n),r.extend(a,n),a.create=function(n){return e(s(t,n))},a}(n(1));a.Axios=i,a.Cancel=n(2),a.CancelToken=n(26),a.isCancel=n(8),a.VERSION=n(10).version,a.all=function(e){return Promise.all(e)},a.spread=n(27),a.isAxiosError=n(28),e.exports=a,e.exports.default=a},function(e,t,n){"use strict";var r=n(0),o=n(4),i=n(14),s=n(15),a=n(9),u=n(25),c=u.validators;function f(e){this.defaults=e,this.interceptors={request:new i,response:new i}}f.prototype.request=function(e){"string"==typeof e?(e=arguments[1]||{}).url=arguments[0]:e=e||{},(e=a(this.defaults,e)).method?e.method=e.method.toLowerCase():this.defaults.method?e.method=this.defaults.method.toLowerCase():e.method="get";var t=e.transitional;void 0!==t&&u.assertOptions(t,{silentJSONParsing:c.transitional(c.boolean),forcedJSONParsing:c.transitional(c.boolean),clarifyTimeoutError:c.transitional(c.boolean)},!1);var n=[],r=!0;this.interceptors.request.forEach((function(t){"function"==typeof t.runWhen&&!1===t.runWhen(e)||(r=r&&t.synchronous,n.unshift(t.fulfilled,t.rejected))}));var o,i=[];if(this.interceptors.response.forEach((function(e){i.push(e.fulfilled,e.rejected)})),!r){var f=[s,void 0];for(Array.prototype.unshift.apply(f,n),f=f.concat(i),o=Promise.resolve(e);f.length;)o=o.then(f.shift(),f.shift());return o}for(var l=e;n.length;){var p=n.shift(),d=n.shift();try{l=p(l)}catch(e){d(e);break}}try{o=s(l)}catch(e){return Promise.reject(e)}for(;i.length;)o=o.then(i.shift(),i.shift());return o},f.prototype.getUri=function(e){return e=a(this.defaults,e),o(e.url,e.params,e.paramsSerializer).replace(/^\?/,"")},r.forEach(["delete","get","head","options"],(function(e){f.prototype[e]=function(t,n){return this.request(a(n||{},{method:e,url:t,data:(n||{}).data}))}})),r.forEach(["post","put","patch"],(function(e){f.prototype[e]=function(t,n,r){return this.request(a(r||{},{method:e,url:t,data:n}))}})),e.exports=f},function(e,t,n){"use strict";var r=n(0);function o(){this.handlers=[]}o.prototype.use=function(e,t,n){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1},o.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},o.prototype.forEach=function(e){r.forEach(this.handlers,(function(t){null!==t&&e(t)}))},e.exports=o},function(e,t,n){"use strict";var r=n(0),o=n(16),i=n(8),s=n(1),a=n(2);function u(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new a("canceled")}e.exports=function(e){return u(e),e.headers=e.headers||{},e.data=o.call(e,e.data,e.headers,e.transformRequest),e.headers=r.merge(e.headers.common||{},e.headers[e.method]||{},e.headers),r.forEach(["delete","get","head","post","put","patch","common"],(function(t){delete e.headers[t]})),(e.adapter||s.adapter)(e).then((function(t){return u(e),t.data=o.call(e,t.data,t.headers,e.transformResponse),t}),(function(t){return i(t)||(u(e),t&&t.response&&(t.response.data=o.call(e,t.response.data,t.response.headers,e.transformResponse))),Promise.reject(t)}))}},function(e,t,n){"use strict";var r=n(0),o=n(1);e.exports=function(e,t,n){var i=this||o;return r.forEach(n,(function(n){e=n.call(i,e,t)})),e}},function(e,t,n){"use strict";var r=n(0);e.exports=function(e,t){r.forEach(e,(function(n,r){r!==t&&r.toUpperCase()===t.toUpperCase()&&(e[t]=n,delete e[r])}))}},function(e,t,n){"use strict";var r=n(7);e.exports=function(e,t,n){var o=n.config.validateStatus;n.status&&o&&!o(n.status)?t(r("Request failed with status code "+n.status,n.config,null,n.request,n)):e(n)}},function(e,t,n){"use strict";var r=n(0);e.exports=r.isStandardBrowserEnv()?{write:function(e,t,n,o,i,s){var a=[];a.push(e+"="+encodeURIComponent(t)),r.isNumber(n)&&a.push("expires="+new Date(n).toGMTString()),r.isString(o)&&a.push("path="+o),r.isString(i)&&a.push("domain="+i),!0===s&&a.push("secure"),document.cookie=a.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}}},function(e,t,n){"use strict";var r=n(21),o=n(22);e.exports=function(e,t){return e&&!r(t)?o(e,t):t}},function(e,t,n){"use strict";e.exports=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},function(e,t,n){"use strict";e.exports=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}},function(e,t,n){"use strict";var r=n(0),o=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];e.exports=function(e){var t,n,i,s={};return e?(r.forEach(e.split("\n"),(function(e){if(i=e.indexOf(":"),t=r.trim(e.substr(0,i)).toLowerCase(),n=r.trim(e.substr(i+1)),t){if(s[t]&&o.indexOf(t)>=0)return;s[t]="set-cookie"===t?(s[t]?s[t]:[]).concat([n]):s[t]?s[t]+", "+n:n}})),s):s}},function(e,t,n){"use strict";var r=n(0);e.exports=r.isStandardBrowserEnv()?function(){var e,t=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement("a");function o(e){var r=e;return t&&(n.setAttribute("href",r),r=n.href),n.setAttribute("href",r),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:"/"===n.pathname.charAt(0)?n.pathname:"/"+n.pathname}}return e=o(window.location.href),function(t){var n=r.isString(t)?o(t):t;return n.protocol===e.protocol&&n.host===e.host}}():function(){return!0}},function(e,t,n){"use strict";var r=n(10).version,o={};["object","boolean","number","function","string","symbol"].forEach((function(e,t){o[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}}));var i={};o.transitional=function(e,t,n){function o(e,t){return"[Axios v"+r+"] Transitional option '"+e+"'"+t+(n?". "+n:"")}return function(n,r,s){if(!1===e)throw new Error(o(r," has been removed"+(t?" in "+t:"")));return t&&!i[r]&&(i[r]=!0,console.warn(o(r," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(n,r,s)}},e.exports={assertOptions:function(e,t,n){if("object"!=typeof e)throw new TypeError("options must be an object");for(var r=Object.keys(e),o=r.length;o-- >0;){var i=r[o],s=t[i];if(s){var a=e[i],u=void 0===a||s(a,i,e);if(!0!==u)throw new TypeError("option "+i+" must be "+u)}else if(!0!==n)throw Error("Unknown option "+i)}},validators:o}},function(e,t,n){"use strict";var r=n(2);function o(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise((function(e){t=e}));var n=this;this.promise.then((function(e){if(n._listeners){var t,r=n._listeners.length;for(t=0;t<r;t++)n._listeners[t](e);n._listeners=null}})),this.promise.then=function(e){var t,r=new Promise((function(e){n.subscribe(e),t=e})).then(e);return r.cancel=function(){n.unsubscribe(t)},r},e((function(e){n.reason||(n.reason=new r(e),t(n.reason))}))}o.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},o.prototype.subscribe=function(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]},o.prototype.unsubscribe=function(e){if(this._listeners){var t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}},o.source=function(){var e;return{token:new o((function(t){e=t})),cancel:e}},e.exports=o},function(e,t,n){"use strict";e.exports=function(e){return function(t){return e.apply(null,t)}}},function(e,t,n){"use strict";e.exports=function(e){return"object"==typeof e&&!0===e.isAxiosError}}])}));
|
2
4
|
//# sourceMappingURL=axios.min.map
|
package/index.d.ts
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
// TypeScript Version: 3.0
|
2
2
|
|
3
|
-
export type AxiosRequestHeaders = Record<string, string>;
|
3
|
+
export type AxiosRequestHeaders = Record<string, string | number | boolean>;
|
4
4
|
|
5
5
|
export type AxiosResponseHeaders = Record<string, string> & {
|
6
6
|
"set-cookie"?: string[]
|
@@ -53,6 +53,20 @@ export type ResponseType =
|
|
53
53
|
| 'text'
|
54
54
|
| 'stream';
|
55
55
|
|
56
|
+
export type responseEncoding =
|
57
|
+
| 'ascii' | 'ASCII'
|
58
|
+
| 'ansi' | 'ANSI'
|
59
|
+
| 'binary' | 'BINARY'
|
60
|
+
| 'base64' | 'BASE64'
|
61
|
+
| 'base64url' | 'BASE64URL'
|
62
|
+
| 'hex' | 'HEX'
|
63
|
+
| 'latin1' | 'LATIN1'
|
64
|
+
| 'ucs-2' | 'UCS-2'
|
65
|
+
| 'ucs2' | 'UCS2'
|
66
|
+
| 'utf-8' | 'UTF-8'
|
67
|
+
| 'utf8' | 'UTF8'
|
68
|
+
| 'utf16le' | 'UTF16LE';
|
69
|
+
|
56
70
|
export interface TransitionalOptions {
|
57
71
|
silentJSONParsing?: boolean;
|
58
72
|
forcedJSONParsing?: boolean;
|
@@ -75,6 +89,7 @@ export interface AxiosRequestConfig<D = any> {
|
|
75
89
|
adapter?: AxiosAdapter;
|
76
90
|
auth?: AxiosBasicCredentials;
|
77
91
|
responseType?: ResponseType;
|
92
|
+
responseEncoding?: responseEncoding | string;
|
78
93
|
xsrfCookieName?: string;
|
79
94
|
xsrfHeaderName?: string;
|
80
95
|
onUploadProgress?: (progressEvent: any) => void;
|
@@ -138,7 +153,7 @@ export interface CancelStatic {
|
|
138
153
|
}
|
139
154
|
|
140
155
|
export interface Cancel {
|
141
|
-
message: string;
|
156
|
+
message: string | undefined;
|
142
157
|
}
|
143
158
|
|
144
159
|
export interface Canceler {
|
package/lib/adapters/http.js
CHANGED
@@ -60,8 +60,10 @@ module.exports = function httpAdapter(config) {
|
|
60
60
|
done();
|
61
61
|
resolvePromise(value);
|
62
62
|
};
|
63
|
+
var rejected = false;
|
63
64
|
var reject = function reject(value) {
|
64
65
|
done();
|
66
|
+
rejected = true;
|
65
67
|
rejectPromise(value);
|
66
68
|
};
|
67
69
|
var data = config.data;
|
@@ -99,6 +101,10 @@ module.exports = function httpAdapter(config) {
|
|
99
101
|
));
|
100
102
|
}
|
101
103
|
|
104
|
+
if (config.maxBodyLength > -1 && data.length > config.maxBodyLength) {
|
105
|
+
return reject(createError('Request body larger than maxBodyLength limit', config));
|
106
|
+
}
|
107
|
+
|
102
108
|
// Add Content-Length header if data exists
|
103
109
|
if (!headerNames['content-length']) {
|
104
110
|
headers['Content-Length'] = data.length;
|
@@ -269,27 +275,40 @@ module.exports = function httpAdapter(config) {
|
|
269
275
|
|
270
276
|
// make sure the content length is not over the maxContentLength if specified
|
271
277
|
if (config.maxContentLength > -1 && totalResponseBytes > config.maxContentLength) {
|
278
|
+
// stream.destoy() emit aborted event before calling reject() on Node.js v16
|
279
|
+
rejected = true;
|
272
280
|
stream.destroy();
|
273
281
|
reject(createError('maxContentLength size of ' + config.maxContentLength + ' exceeded',
|
274
282
|
config, null, lastRequest));
|
275
283
|
}
|
276
284
|
});
|
277
285
|
|
286
|
+
stream.on('aborted', function handlerStreamAborted() {
|
287
|
+
if (rejected) {
|
288
|
+
return;
|
289
|
+
}
|
290
|
+
stream.destroy();
|
291
|
+
reject(createError('error request aborted', config, 'ERR_REQUEST_ABORTED', lastRequest));
|
292
|
+
});
|
293
|
+
|
278
294
|
stream.on('error', function handleStreamError(err) {
|
279
295
|
if (req.aborted) return;
|
280
296
|
reject(enhanceError(err, config, null, lastRequest));
|
281
297
|
});
|
282
298
|
|
283
299
|
stream.on('end', function handleStreamEnd() {
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
300
|
+
try {
|
301
|
+
var responseData = responseBuffer.length === 1 ? responseBuffer[0] : Buffer.concat(responseBuffer);
|
302
|
+
if (config.responseType !== 'arraybuffer') {
|
303
|
+
responseData = responseData.toString(config.responseEncoding);
|
304
|
+
if (!config.responseEncoding || config.responseEncoding === 'utf8') {
|
305
|
+
responseData = utils.stripBOM(responseData);
|
306
|
+
}
|
289
307
|
}
|
308
|
+
response.data = responseData;
|
309
|
+
} catch (err) {
|
310
|
+
reject(enhanceError(err, config, err.code, response.request, response));
|
290
311
|
}
|
291
|
-
|
292
|
-
response.data = responseData;
|
293
312
|
settle(resolve, reject, response);
|
294
313
|
});
|
295
314
|
}
|
@@ -301,6 +320,12 @@ module.exports = function httpAdapter(config) {
|
|
301
320
|
reject(enhanceError(err, config, null, req));
|
302
321
|
});
|
303
322
|
|
323
|
+
// set tcp keep alive to prevent drop connection by peer
|
324
|
+
req.on('socket', function handleRequestSocket(socket) {
|
325
|
+
// default interval of sending ack packet is 1 minute
|
326
|
+
socket.setKeepAlive(true, 1000 * 60);
|
327
|
+
});
|
328
|
+
|
304
329
|
// Handle request timeout
|
305
330
|
if (config.timeout) {
|
306
331
|
// This is forcing a int timeout to avoid problems if the `req` interface doesn't handle other types.
|
package/lib/core/Axios.js
CHANGED
@@ -26,14 +26,18 @@ function Axios(instanceConfig) {
|
|
26
26
|
*
|
27
27
|
* @param {Object} config The config specific for this request (merged with this.defaults)
|
28
28
|
*/
|
29
|
-
Axios.prototype.request = function request(config) {
|
29
|
+
Axios.prototype.request = function request(configOrUrl, config) {
|
30
30
|
/*eslint no-param-reassign:0*/
|
31
31
|
// Allow for axios('example/url'[, config]) a la fetch API
|
32
|
-
if (typeof
|
33
|
-
config = arguments[1] || {};
|
34
|
-
config.url = arguments[0];
|
35
|
-
} else {
|
32
|
+
if (typeof configOrUrl === 'string') {
|
36
33
|
config = config || {};
|
34
|
+
config.url = configOrUrl;
|
35
|
+
} else {
|
36
|
+
config = configOrUrl || {};
|
37
|
+
}
|
38
|
+
|
39
|
+
if (!config.url) {
|
40
|
+
throw new Error('Provided config url is not valid');
|
37
41
|
}
|
38
42
|
|
39
43
|
config = mergeConfig(this.defaults, config);
|
@@ -118,6 +122,9 @@ Axios.prototype.request = function request(config) {
|
|
118
122
|
};
|
119
123
|
|
120
124
|
Axios.prototype.getUri = function getUri(config) {
|
125
|
+
if (!config.url) {
|
126
|
+
throw new Error('Provided config url is not valid');
|
127
|
+
}
|
121
128
|
config = mergeConfig(this.defaults, config);
|
122
129
|
return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\?/, '');
|
123
130
|
};
|
package/lib/env/data.js
CHANGED
@@ -10,5 +10,5 @@ module.exports = function isAbsoluteURL(url) {
|
|
10
10
|
// A URL is considered absolute if it begins with "<scheme>://" or "//" (protocol-relative URL).
|
11
11
|
// RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed
|
12
12
|
// by any combination of letters, digits, plus, period, or hyphen.
|
13
|
-
return /^([a-z][a-z\d
|
13
|
+
return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url);
|
14
14
|
};
|
@@ -1,5 +1,7 @@
|
|
1
1
|
'use strict';
|
2
2
|
|
3
|
+
var utils = require('./../utils');
|
4
|
+
|
3
5
|
/**
|
4
6
|
* Determines whether the payload is an error thrown by Axios
|
5
7
|
*
|
@@ -7,5 +9,5 @@
|
|
7
9
|
* @returns {boolean} True if the payload is an error thrown by Axios, otherwise false
|
8
10
|
*/
|
9
11
|
module.exports = function isAxiosError(payload) {
|
10
|
-
return (
|
12
|
+
return utils.isObject(payload) && (payload.isAxiosError === true);
|
11
13
|
};
|
@@ -0,0 +1,55 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
function combinedKey(parentKey, elKey) {
|
4
|
+
return parentKey + '.' + elKey;
|
5
|
+
}
|
6
|
+
|
7
|
+
function buildFormData(formData, data, parentKey) {
|
8
|
+
if (Array.isArray(data)) {
|
9
|
+
data.forEach(function buildArray(el, i) {
|
10
|
+
buildFormData(formData, el, combinedKey(parentKey, i));
|
11
|
+
});
|
12
|
+
} else if (
|
13
|
+
typeof data === 'object' &&
|
14
|
+
!(data instanceof File || data === null)
|
15
|
+
) {
|
16
|
+
Object.keys(data).forEach(function buildObject(key) {
|
17
|
+
buildFormData(
|
18
|
+
formData,
|
19
|
+
data[key],
|
20
|
+
parentKey ? combinedKey(parentKey, key) : key
|
21
|
+
);
|
22
|
+
});
|
23
|
+
} else {
|
24
|
+
if (data === undefined) {
|
25
|
+
return;
|
26
|
+
}
|
27
|
+
|
28
|
+
var value =
|
29
|
+
typeof data === 'boolean' || typeof data === 'number'
|
30
|
+
? data.toString()
|
31
|
+
: data;
|
32
|
+
formData.append(parentKey, value);
|
33
|
+
}
|
34
|
+
}
|
35
|
+
|
36
|
+
/**
|
37
|
+
* convert a data object to FormData
|
38
|
+
*
|
39
|
+
* type FormDataPrimitive = string | Blob | number | boolean
|
40
|
+
* interface FormDataNest {
|
41
|
+
* [x: string]: FormVal
|
42
|
+
* }
|
43
|
+
*
|
44
|
+
* type FormVal = FormDataNest | FormDataPrimitive
|
45
|
+
*
|
46
|
+
* @param {FormVal} data
|
47
|
+
*/
|
48
|
+
|
49
|
+
module.exports = function getFormData(data) {
|
50
|
+
var formData = new FormData();
|
51
|
+
|
52
|
+
buildFormData(formData, data);
|
53
|
+
|
54
|
+
return formData;
|
55
|
+
};
|
package/lib/utils.js
CHANGED
@@ -13,7 +13,7 @@ var toString = Object.prototype.toString;
|
|
13
13
|
* @returns {boolean} True if value is an Array, otherwise false
|
14
14
|
*/
|
15
15
|
function isArray(val) {
|
16
|
-
return
|
16
|
+
return Array.isArray(val);
|
17
17
|
}
|
18
18
|
|
19
19
|
/**
|
@@ -54,7 +54,7 @@ function isArrayBuffer(val) {
|
|
54
54
|
* @returns {boolean} True if value is an FormData, otherwise false
|
55
55
|
*/
|
56
56
|
function isFormData(val) {
|
57
|
-
return (
|
57
|
+
return toString.call(val) === '[object FormData]';
|
58
58
|
}
|
59
59
|
|
60
60
|
/**
|
@@ -68,7 +68,7 @@ function isArrayBufferView(val) {
|
|
68
68
|
if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {
|
69
69
|
result = ArrayBuffer.isView(val);
|
70
70
|
} else {
|
71
|
-
result = (val) && (val.buffer) && (val.buffer
|
71
|
+
result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));
|
72
72
|
}
|
73
73
|
return result;
|
74
74
|
}
|
@@ -175,7 +175,7 @@ function isStream(val) {
|
|
175
175
|
* @returns {boolean} True if value is a URLSearchParams object, otherwise false
|
176
176
|
*/
|
177
177
|
function isURLSearchParams(val) {
|
178
|
-
return
|
178
|
+
return toString.call(val) === '[object URLSearchParams]';
|
179
179
|
}
|
180
180
|
|
181
181
|
/**
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "axios",
|
3
|
-
"version": "0.
|
3
|
+
"version": "0.25.0",
|
4
4
|
"description": "Promise based HTTP client for the browser and node.js",
|
5
5
|
"main": "index.js",
|
6
6
|
"types": "index.d.ts",
|
@@ -75,7 +75,7 @@
|
|
75
75
|
"unpkg": "dist/axios.min.js",
|
76
76
|
"typings": "./index.d.ts",
|
77
77
|
"dependencies": {
|
78
|
-
"follow-redirects": "^1.14.
|
78
|
+
"follow-redirects": "^1.14.7"
|
79
79
|
},
|
80
80
|
"bundlesize": [
|
81
81
|
{
|