appium-mac2-driver 4.4.0 → 4.5.1

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.
Files changed (350) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/WebDriverAgentMac/IntegrationTests/AMWindowTests.m +427 -0
  3. package/WebDriverAgentMac/WebDriverAgentLib/Commands/AMWindowCommands.m +63 -0
  4. package/WebDriverAgentMac/WebDriverAgentLib/Commands/FBDebugCommands.m +2 -0
  5. package/WebDriverAgentMac/WebDriverAgentLib/Routing/FBCommandStatus.h +3 -0
  6. package/WebDriverAgentMac/WebDriverAgentLib/Routing/FBCommandStatus.m +13 -0
  7. package/WebDriverAgentMac/WebDriverAgentLib/Utilities/AMScreenUtils.h +4 -0
  8. package/WebDriverAgentMac/WebDriverAgentLib/Utilities/AMScreenUtils.m +23 -0
  9. package/WebDriverAgentMac/WebDriverAgentLib/Utilities/AMSnapshotUtils.h +18 -0
  10. package/WebDriverAgentMac/WebDriverAgentLib/Utilities/AMSnapshotUtils.m +43 -28
  11. package/WebDriverAgentMac/WebDriverAgentLib/Utilities/AMWindowUtils.h +111 -0
  12. package/WebDriverAgentMac/WebDriverAgentLib/Utilities/AMWindowUtils.m +780 -0
  13. package/WebDriverAgentMac/WebDriverAgentLib/Utilities/AMXCTAccessibility.h +61 -0
  14. package/WebDriverAgentMac/WebDriverAgentLib/Utilities/AMXCTAccessibility.m +108 -0
  15. package/WebDriverAgentMac/WebDriverAgentMac.xcodeproj/project.pbxproj +20 -0
  16. package/build/lib/commands/native-record-screen.d.ts +2 -0
  17. package/build/lib/commands/native-record-screen.d.ts.map +1 -1
  18. package/build/lib/commands/native-record-screen.js.map +1 -1
  19. package/build/lib/commands/windows.d.ts +22 -0
  20. package/build/lib/commands/windows.d.ts.map +1 -0
  21. package/build/lib/commands/windows.js +32 -0
  22. package/build/lib/commands/windows.js.map +1 -0
  23. package/build/lib/driver.d.ts +12 -0
  24. package/build/lib/driver.d.ts.map +1 -1
  25. package/build/lib/driver.js +3 -0
  26. package/build/lib/driver.js.map +1 -1
  27. package/build/lib/execute-method-map.d.ts +9 -0
  28. package/build/lib/execute-method-map.d.ts.map +1 -1
  29. package/build/lib/execute-method-map.js +9 -0
  30. package/build/lib/execute-method-map.js.map +1 -1
  31. package/build/lib/session-claim-handler.d.ts.map +1 -1
  32. package/build/lib/session-claim-handler.js +1 -2
  33. package/build/lib/session-claim-handler.js.map +1 -1
  34. package/build/lib/types.d.ts +26 -0
  35. package/build/lib/types.d.ts.map +1 -1
  36. package/build/lib/wda-mac.d.ts +0 -1
  37. package/build/lib/wda-mac.d.ts.map +1 -1
  38. package/build/lib/wda-mac.js +1 -1
  39. package/lib/commands/native-record-screen.ts +2 -0
  40. package/lib/commands/windows.ts +44 -0
  41. package/lib/driver.ts +4 -0
  42. package/lib/execute-method-map.ts +9 -0
  43. package/lib/session-claim-handler.ts +1 -2
  44. package/lib/types.ts +28 -0
  45. package/lib/wda-mac.ts +1 -2
  46. package/node_modules/@appium/support/build/lib/npm.d.ts.map +1 -1
  47. package/node_modules/@appium/support/build/lib/npm.js +2 -1
  48. package/node_modules/@appium/support/build/lib/npm.js.map +1 -1
  49. package/node_modules/@appium/support/build/lib/util.d.ts.map +1 -1
  50. package/node_modules/@appium/support/build/lib/util.js +13 -1
  51. package/node_modules/@appium/support/build/lib/util.js.map +1 -1
  52. package/node_modules/@appium/support/build/lib/zip.d.ts +2 -1
  53. package/node_modules/@appium/support/build/lib/zip.d.ts.map +1 -1
  54. package/node_modules/@appium/support/build/lib/zip.js +193 -64
  55. package/node_modules/@appium/support/build/lib/zip.js.map +1 -1
  56. package/node_modules/@appium/support/lib/npm.ts +2 -1
  57. package/node_modules/@appium/support/lib/util.ts +13 -1
  58. package/node_modules/@appium/support/lib/zip.ts +231 -71
  59. package/node_modules/@appium/support/node_modules/axios/CHANGELOG.md +1934 -0
  60. package/node_modules/@appium/support/node_modules/axios/LICENSE +7 -0
  61. package/node_modules/@appium/support/node_modules/axios/MIGRATION_GUIDE.md +877 -0
  62. package/node_modules/@appium/support/node_modules/axios/README.md +2851 -0
  63. package/node_modules/@appium/support/node_modules/axios/dist/axios.js +5807 -0
  64. package/node_modules/@appium/support/node_modules/axios/dist/axios.min.js +5 -0
  65. package/node_modules/@appium/support/node_modules/axios/dist/axios.min.js.map +1 -0
  66. package/node_modules/@appium/support/node_modules/axios/dist/browser/axios.cjs +5829 -0
  67. package/node_modules/@appium/support/node_modules/axios/dist/esm/axios.js +5850 -0
  68. package/node_modules/@appium/support/node_modules/axios/dist/esm/axios.min.js +3 -0
  69. package/node_modules/@appium/support/node_modules/axios/dist/esm/axios.min.js.map +1 -0
  70. package/node_modules/@appium/support/node_modules/axios/dist/node/axios.cjs +6808 -0
  71. package/node_modules/@appium/support/node_modules/axios/index.d.cts +766 -0
  72. package/node_modules/@appium/support/node_modules/axios/index.d.ts +787 -0
  73. package/node_modules/@appium/support/node_modules/axios/index.js +45 -0
  74. package/node_modules/@appium/support/node_modules/axios/lib/adapters/README.md +36 -0
  75. package/node_modules/@appium/support/node_modules/axios/lib/adapters/adapters.js +132 -0
  76. package/node_modules/@appium/support/node_modules/axios/lib/adapters/fetch.js +696 -0
  77. package/node_modules/@appium/support/node_modules/axios/lib/adapters/http.js +1490 -0
  78. package/node_modules/@appium/support/node_modules/axios/lib/adapters/xhr.js +277 -0
  79. package/node_modules/@appium/support/node_modules/axios/lib/axios.js +89 -0
  80. package/node_modules/@appium/support/node_modules/axios/lib/cancel/CancelToken.js +135 -0
  81. package/node_modules/@appium/support/node_modules/axios/lib/cancel/CanceledError.js +22 -0
  82. package/node_modules/@appium/support/node_modules/axios/lib/cancel/isCancel.js +5 -0
  83. package/node_modules/@appium/support/node_modules/axios/lib/core/Axios.js +306 -0
  84. package/node_modules/@appium/support/node_modules/axios/lib/core/AxiosError.js +219 -0
  85. package/node_modules/@appium/support/node_modules/axios/lib/core/AxiosHeaders.js +474 -0
  86. package/node_modules/@appium/support/node_modules/axios/lib/core/InterceptorManager.js +171 -0
  87. package/node_modules/@appium/support/node_modules/axios/lib/core/README.md +8 -0
  88. package/node_modules/@appium/support/node_modules/axios/lib/core/buildFullPath.js +76 -0
  89. package/node_modules/@appium/support/node_modules/axios/lib/core/dispatchRequest.js +95 -0
  90. package/node_modules/@appium/support/node_modules/axios/lib/core/mergeConfig.js +174 -0
  91. package/node_modules/@appium/support/node_modules/axios/lib/core/methodList.js +17 -0
  92. package/node_modules/@appium/support/node_modules/axios/lib/core/setFormDataHeaders.js +27 -0
  93. package/node_modules/@appium/support/node_modules/axios/lib/core/settle.js +27 -0
  94. package/node_modules/@appium/support/node_modules/axios/lib/core/transformData.js +28 -0
  95. package/node_modules/@appium/support/node_modules/axios/lib/defaults/index.js +178 -0
  96. package/node_modules/@appium/support/node_modules/axios/lib/defaults/transitional.js +10 -0
  97. package/node_modules/@appium/support/node_modules/axios/lib/env/README.md +3 -0
  98. package/node_modules/@appium/support/node_modules/axios/lib/env/classes/FormData.js +2 -0
  99. package/node_modules/@appium/support/node_modules/axios/lib/env/data.js +1 -0
  100. package/node_modules/@appium/support/node_modules/axios/lib/helpers/AxiosTransformStream.js +156 -0
  101. package/node_modules/@appium/support/node_modules/axios/lib/helpers/AxiosURLSearchParams.js +59 -0
  102. package/node_modules/@appium/support/node_modules/axios/lib/helpers/Http2Sessions.js +121 -0
  103. package/node_modules/@appium/support/node_modules/axios/lib/helpers/HttpStatusCode.js +88 -0
  104. package/node_modules/@appium/support/node_modules/axios/lib/helpers/README.md +7 -0
  105. package/node_modules/@appium/support/node_modules/axios/lib/helpers/ZlibHeaderTransformStream.js +29 -0
  106. package/node_modules/@appium/support/node_modules/axios/lib/helpers/bind.js +14 -0
  107. package/node_modules/@appium/support/node_modules/axios/lib/helpers/buildURL.js +69 -0
  108. package/node_modules/@appium/support/node_modules/axios/lib/helpers/callbackify.js +18 -0
  109. package/node_modules/@appium/support/node_modules/axios/lib/helpers/combineURLs.js +23 -0
  110. package/node_modules/@appium/support/node_modules/axios/lib/helpers/composeSignals.js +68 -0
  111. package/node_modules/@appium/support/node_modules/axios/lib/helpers/cookies.js +64 -0
  112. package/node_modules/@appium/support/node_modules/axios/lib/helpers/deprecatedMethod.js +31 -0
  113. package/node_modules/@appium/support/node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js +166 -0
  114. package/node_modules/@appium/support/node_modules/axios/lib/helpers/formDataToJSON.js +125 -0
  115. package/node_modules/@appium/support/node_modules/axios/lib/helpers/formDataToStream.js +119 -0
  116. package/node_modules/@appium/support/node_modules/axios/lib/helpers/fromDataURI.js +69 -0
  117. package/node_modules/@appium/support/node_modules/axios/lib/helpers/isAbsoluteURL.js +19 -0
  118. package/node_modules/@appium/support/node_modules/axios/lib/helpers/isAxiosError.js +14 -0
  119. package/node_modules/@appium/support/node_modules/axios/lib/helpers/isURLSameOrigin.js +16 -0
  120. package/node_modules/@appium/support/node_modules/axios/lib/helpers/normalizeURLForProtocolCheck.js +24 -0
  121. package/node_modules/@appium/support/node_modules/axios/lib/helpers/null.js +2 -0
  122. package/node_modules/@appium/support/node_modules/axios/lib/helpers/parseHeaders.js +71 -0
  123. package/node_modules/@appium/support/node_modules/axios/lib/helpers/parseProtocol.js +6 -0
  124. package/node_modules/@appium/support/node_modules/axios/lib/helpers/progressEventReducer.js +54 -0
  125. package/node_modules/@appium/support/node_modules/axios/lib/helpers/readBlob.js +15 -0
  126. package/node_modules/@appium/support/node_modules/axios/lib/helpers/resolveConfig.js +107 -0
  127. package/node_modules/@appium/support/node_modules/axios/lib/helpers/sanitizeHeaderValue.js +60 -0
  128. package/node_modules/@appium/support/node_modules/axios/lib/helpers/shouldBypassProxy.js +505 -0
  129. package/node_modules/@appium/support/node_modules/axios/lib/helpers/speedometer.js +55 -0
  130. package/node_modules/@appium/support/node_modules/axios/lib/helpers/spread.js +28 -0
  131. package/node_modules/@appium/support/node_modules/axios/lib/helpers/throttle.js +45 -0
  132. package/node_modules/@appium/support/node_modules/axios/lib/helpers/toFormData.js +279 -0
  133. package/node_modules/@appium/support/node_modules/axios/lib/helpers/toURLEncodedForm.js +19 -0
  134. package/node_modules/@appium/support/node_modules/axios/lib/helpers/trackStream.js +89 -0
  135. package/node_modules/@appium/support/node_modules/axios/lib/helpers/validator.js +112 -0
  136. package/node_modules/@appium/support/node_modules/axios/lib/platform/browser/classes/Blob.js +3 -0
  137. package/node_modules/@appium/support/node_modules/axios/lib/platform/browser/classes/FormData.js +3 -0
  138. package/node_modules/@appium/support/node_modules/axios/lib/platform/browser/classes/URLSearchParams.js +4 -0
  139. package/node_modules/@appium/support/node_modules/axios/lib/platform/browser/index.js +13 -0
  140. package/node_modules/@appium/support/node_modules/axios/lib/platform/common/utils.js +52 -0
  141. package/node_modules/@appium/support/node_modules/axios/lib/platform/index.js +7 -0
  142. package/node_modules/@appium/support/node_modules/axios/lib/platform/node/classes/Buffer.js +11 -0
  143. package/node_modules/@appium/support/node_modules/axios/lib/platform/node/classes/FormData.js +3 -0
  144. package/node_modules/@appium/support/node_modules/axios/lib/platform/node/classes/URLSearchParams.js +4 -0
  145. package/node_modules/@appium/support/node_modules/axios/lib/platform/node/index.js +37 -0
  146. package/node_modules/@appium/support/node_modules/axios/lib/utils.js +1150 -0
  147. package/node_modules/@appium/support/node_modules/axios/package.json +203 -0
  148. package/node_modules/@appium/support/package.json +6 -6
  149. package/node_modules/@appium/types/build/lib/commands/basedriver.d.ts +6 -4
  150. package/node_modules/@appium/types/build/lib/commands/basedriver.d.ts.map +1 -1
  151. package/node_modules/@appium/types/lib/commands/basedriver.ts +4 -4
  152. package/node_modules/@appium/types/package.json +2 -2
  153. package/node_modules/appium-xcode/CHANGELOG.md +7 -0
  154. package/node_modules/appium-xcode/package.json +4 -4
  155. package/node_modules/asyncbox/README.md +43 -0
  156. package/node_modules/asyncbox/build/cjs/lib/asyncfilter.d.ts +9 -0
  157. package/node_modules/asyncbox/build/cjs/lib/asyncfilter.d.ts.map +1 -0
  158. package/node_modules/asyncbox/build/cjs/lib/asyncfilter.js +35 -0
  159. package/node_modules/asyncbox/build/cjs/lib/asyncfilter.js.map +1 -0
  160. package/node_modules/asyncbox/build/cjs/lib/asyncmap.d.ts +9 -0
  161. package/node_modules/asyncbox/build/cjs/lib/asyncmap.d.ts.map +1 -0
  162. package/node_modules/asyncbox/build/cjs/lib/asyncmap.js +23 -0
  163. package/node_modules/asyncbox/build/cjs/lib/asyncmap.js.map +1 -0
  164. package/node_modules/asyncbox/build/cjs/lib/errors.d.ts +9 -0
  165. package/node_modules/asyncbox/build/cjs/lib/errors.d.ts.map +1 -0
  166. package/node_modules/asyncbox/build/cjs/lib/errors.js +20 -0
  167. package/node_modules/asyncbox/build/cjs/lib/errors.js.map +1 -0
  168. package/node_modules/asyncbox/build/cjs/lib/index.d.ts +12 -0
  169. package/node_modules/asyncbox/build/cjs/lib/index.d.ts.map +1 -0
  170. package/node_modules/asyncbox/build/cjs/lib/index.js +24 -0
  171. package/node_modules/asyncbox/build/cjs/lib/index.js.map +1 -0
  172. package/node_modules/asyncbox/build/cjs/lib/limit-function.d.ts +3 -0
  173. package/node_modules/asyncbox/build/cjs/lib/limit-function.d.ts.map +1 -0
  174. package/node_modules/asyncbox/build/cjs/lib/limit-function.js +15 -0
  175. package/node_modules/asyncbox/build/cjs/lib/limit-function.js.map +1 -0
  176. package/node_modules/asyncbox/build/cjs/lib/lock.d.ts +74 -0
  177. package/node_modules/asyncbox/build/cjs/lib/lock.d.ts.map +1 -0
  178. package/node_modules/asyncbox/build/cjs/lib/lock.js +295 -0
  179. package/node_modules/asyncbox/build/cjs/lib/lock.js.map +1 -0
  180. package/node_modules/asyncbox/build/cjs/lib/long-sleep.d.ts +15 -0
  181. package/node_modules/asyncbox/build/cjs/lib/long-sleep.d.ts.map +1 -0
  182. package/node_modules/asyncbox/build/cjs/lib/long-sleep.js +36 -0
  183. package/node_modules/asyncbox/build/cjs/lib/long-sleep.js.map +1 -0
  184. package/node_modules/asyncbox/build/cjs/lib/retry.d.ts +17 -0
  185. package/node_modules/asyncbox/build/cjs/lib/retry.d.ts.map +1 -0
  186. package/node_modules/asyncbox/build/cjs/lib/retry.js +57 -0
  187. package/node_modules/asyncbox/build/cjs/lib/retry.js.map +1 -0
  188. package/node_modules/asyncbox/build/cjs/lib/sleep.d.ts +20 -0
  189. package/node_modules/asyncbox/build/cjs/lib/sleep.d.ts.map +1 -0
  190. package/node_modules/asyncbox/build/cjs/lib/sleep.js +61 -0
  191. package/node_modules/asyncbox/build/cjs/lib/sleep.js.map +1 -0
  192. package/node_modules/asyncbox/build/cjs/lib/wait-for-condition.d.ts +18 -0
  193. package/node_modules/asyncbox/build/cjs/lib/wait-for-condition.d.ts.map +1 -0
  194. package/node_modules/asyncbox/build/cjs/lib/wait-for-condition.js +51 -0
  195. package/node_modules/asyncbox/build/cjs/lib/wait-for-condition.js.map +1 -0
  196. package/node_modules/asyncbox/build/cjs/lib/with-timeout.d.ts +16 -0
  197. package/node_modules/asyncbox/build/cjs/lib/with-timeout.d.ts.map +1 -0
  198. package/node_modules/asyncbox/build/cjs/lib/with-timeout.js +45 -0
  199. package/node_modules/asyncbox/build/cjs/lib/with-timeout.js.map +1 -0
  200. package/node_modules/asyncbox/build/esm/lib/asyncfilter.d.ts +9 -0
  201. package/node_modules/asyncbox/build/esm/lib/asyncfilter.d.ts.map +1 -0
  202. package/node_modules/asyncbox/build/esm/lib/asyncfilter.js +32 -0
  203. package/node_modules/asyncbox/build/esm/lib/asyncfilter.js.map +1 -0
  204. package/node_modules/asyncbox/build/esm/lib/asyncmap.d.ts +9 -0
  205. package/node_modules/asyncbox/build/esm/lib/asyncmap.d.ts.map +1 -0
  206. package/node_modules/asyncbox/build/esm/lib/asyncmap.js +20 -0
  207. package/node_modules/asyncbox/build/esm/lib/asyncmap.js.map +1 -0
  208. package/node_modules/asyncbox/build/esm/lib/errors.d.ts +9 -0
  209. package/node_modules/asyncbox/build/esm/lib/errors.d.ts.map +1 -0
  210. package/node_modules/asyncbox/build/esm/lib/errors.js +15 -0
  211. package/node_modules/asyncbox/build/esm/lib/errors.js.map +1 -0
  212. package/node_modules/asyncbox/build/esm/lib/index.d.ts +12 -0
  213. package/node_modules/asyncbox/build/esm/lib/index.d.ts.map +1 -0
  214. package/node_modules/asyncbox/build/esm/lib/index.js +10 -0
  215. package/node_modules/asyncbox/build/esm/lib/index.js.map +1 -0
  216. package/node_modules/asyncbox/build/esm/lib/limit-function.d.ts +3 -0
  217. package/node_modules/asyncbox/build/esm/lib/limit-function.d.ts.map +1 -0
  218. package/node_modules/asyncbox/build/esm/lib/limit-function.js +12 -0
  219. package/node_modules/asyncbox/build/esm/lib/limit-function.js.map +1 -0
  220. package/node_modules/asyncbox/build/esm/lib/lock.d.ts +74 -0
  221. package/node_modules/asyncbox/build/esm/lib/lock.d.ts.map +1 -0
  222. package/node_modules/asyncbox/build/esm/lib/lock.js +291 -0
  223. package/node_modules/asyncbox/build/esm/lib/lock.js.map +1 -0
  224. package/node_modules/asyncbox/build/esm/lib/long-sleep.d.ts +15 -0
  225. package/node_modules/asyncbox/build/esm/lib/long-sleep.d.ts.map +1 -0
  226. package/node_modules/asyncbox/build/esm/lib/long-sleep.js +33 -0
  227. package/node_modules/asyncbox/build/esm/lib/long-sleep.js.map +1 -0
  228. package/node_modules/asyncbox/build/esm/lib/retry.d.ts +17 -0
  229. package/node_modules/asyncbox/build/esm/lib/retry.d.ts.map +1 -0
  230. package/node_modules/asyncbox/build/esm/lib/retry.js +53 -0
  231. package/node_modules/asyncbox/build/esm/lib/retry.js.map +1 -0
  232. package/node_modules/asyncbox/build/esm/lib/sleep.d.ts +20 -0
  233. package/node_modules/asyncbox/build/esm/lib/sleep.d.ts.map +1 -0
  234. package/node_modules/asyncbox/build/esm/lib/sleep.js +58 -0
  235. package/node_modules/asyncbox/build/esm/lib/sleep.js.map +1 -0
  236. package/node_modules/asyncbox/build/esm/lib/wait-for-condition.d.ts +18 -0
  237. package/node_modules/asyncbox/build/esm/lib/wait-for-condition.d.ts.map +1 -0
  238. package/node_modules/asyncbox/build/esm/lib/wait-for-condition.js +48 -0
  239. package/node_modules/asyncbox/build/esm/lib/wait-for-condition.js.map +1 -0
  240. package/node_modules/asyncbox/build/esm/lib/with-timeout.d.ts +16 -0
  241. package/node_modules/asyncbox/build/esm/lib/with-timeout.d.ts.map +1 -0
  242. package/node_modules/asyncbox/build/esm/lib/with-timeout.js +42 -0
  243. package/node_modules/asyncbox/build/esm/lib/with-timeout.js.map +1 -0
  244. package/node_modules/asyncbox/lib/asyncfilter.ts +38 -0
  245. package/node_modules/asyncbox/lib/asyncmap.ts +29 -0
  246. package/node_modules/asyncbox/lib/errors.ts +15 -0
  247. package/node_modules/asyncbox/lib/index.ts +21 -0
  248. package/node_modules/asyncbox/lib/limit-function.ts +18 -0
  249. package/node_modules/asyncbox/lib/lock.ts +360 -0
  250. package/node_modules/asyncbox/lib/long-sleep.ts +38 -0
  251. package/node_modules/asyncbox/lib/retry.ts +61 -0
  252. package/node_modules/asyncbox/lib/sleep.ts +79 -0
  253. package/node_modules/asyncbox/lib/wait-for-condition.ts +52 -0
  254. package/node_modules/asyncbox/lib/with-timeout.ts +43 -0
  255. package/node_modules/asyncbox/package.json +8 -8
  256. package/node_modules/axios/README.md +41 -106
  257. package/node_modules/axios/dist/axios.js +931 -278
  258. package/node_modules/axios/dist/axios.min.js +2 -2
  259. package/node_modules/axios/dist/axios.min.js.map +1 -1
  260. package/node_modules/axios/dist/browser/axios.cjs +948 -268
  261. package/node_modules/axios/dist/esm/axios.js +948 -268
  262. package/node_modules/axios/dist/esm/axios.min.js +2 -2
  263. package/node_modules/axios/dist/esm/axios.min.js.map +1 -1
  264. package/node_modules/axios/dist/node/axios.cjs +925 -242
  265. package/node_modules/axios/index.d.cts +20 -1
  266. package/node_modules/axios/index.d.ts +18 -1
  267. package/node_modules/axios/lib/adapters/fetch.js +73 -20
  268. package/node_modules/axios/lib/adapters/http.js +145 -26
  269. package/node_modules/axios/lib/adapters/xhr.js +120 -13
  270. package/node_modules/axios/lib/core/Axios.js +67 -12
  271. package/node_modules/axios/lib/core/AxiosError.js +59 -0
  272. package/node_modules/axios/lib/core/AxiosHeaders.js +17 -4
  273. package/node_modules/axios/lib/core/InterceptorManager.js +13 -2
  274. package/node_modules/axios/lib/core/assertParamsAcyclic.js +49 -0
  275. package/node_modules/axios/lib/core/createMultipartBody.js +37 -0
  276. package/node_modules/axios/lib/core/dispatchRequest.js +20 -0
  277. package/node_modules/axios/lib/core/mergeConfig.js +183 -120
  278. package/node_modules/axios/lib/defaults/transitional.js +1 -0
  279. package/node_modules/axios/lib/env/data.js +1 -1
  280. package/node_modules/axios/lib/helpers/AxiosTransformStream.js +11 -2
  281. package/node_modules/axios/lib/helpers/Http2Sessions.js +2 -1
  282. package/node_modules/axios/lib/helpers/composeSignals.js +6 -3
  283. package/node_modules/axios/lib/helpers/cookies.js +30 -6
  284. package/node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js +34 -7
  285. package/node_modules/axios/lib/helpers/formDataToBlob.js +113 -0
  286. package/node_modules/axios/lib/helpers/formDataToJSON.js +25 -1
  287. package/node_modules/axios/lib/helpers/fromDataURI.js +8 -2
  288. package/node_modules/axios/lib/helpers/isURLSameOrigin.js +4 -9
  289. package/node_modules/axios/lib/helpers/parseHeaders.js +2 -1
  290. package/node_modules/axios/lib/helpers/parseProtocol.js +1 -1
  291. package/node_modules/axios/lib/helpers/resolveConfig.js +16 -3
  292. package/node_modules/axios/lib/helpers/shouldBypassProxy.js +16 -1
  293. package/node_modules/axios/lib/utils.js +61 -10
  294. package/node_modules/axios/package.json +1 -2
  295. package/node_modules/bare-url/README.md +4 -0
  296. package/node_modules/bare-url/index.d.ts +3 -0
  297. package/node_modules/bare-url/index.js +42 -18
  298. package/node_modules/bare-url/lib/errors.js +4 -0
  299. package/node_modules/bare-url/package.json +1 -1
  300. package/node_modules/bare-url/prebuilds/android-arm/bare-url.bare +0 -0
  301. package/node_modules/bare-url/prebuilds/android-arm64/bare-url.bare +0 -0
  302. package/node_modules/bare-url/prebuilds/android-ia32/bare-url.bare +0 -0
  303. package/node_modules/bare-url/prebuilds/android-x64/bare-url.bare +0 -0
  304. package/node_modules/bare-url/prebuilds/darwin-arm64/bare-url.bare +0 -0
  305. package/node_modules/bare-url/prebuilds/darwin-x64/bare-url.bare +0 -0
  306. package/node_modules/bare-url/prebuilds/ios-arm64/bare-url.bare +0 -0
  307. package/node_modules/bare-url/prebuilds/ios-arm64-simulator/bare-url.bare +0 -0
  308. package/node_modules/bare-url/prebuilds/ios-x64-simulator/bare-url.bare +0 -0
  309. package/node_modules/bare-url/prebuilds/linux-arm64/bare-url.bare +0 -0
  310. package/node_modules/bare-url/prebuilds/linux-x64/bare-url.bare +0 -0
  311. package/node_modules/bare-url/prebuilds/win32-arm64/bare-url.bare +0 -0
  312. package/node_modules/bare-url/prebuilds/win32-x64/bare-url.bare +0 -0
  313. package/node_modules/follow-redirects/README.md +27 -1
  314. package/node_modules/follow-redirects/index.js +1 -5
  315. package/node_modules/follow-redirects/package.json +1 -1
  316. package/node_modules/shell-quote/README.md +37 -4
  317. package/node_modules/shell-quote/package.json +10 -6
  318. package/node_modules/shell-quote/parse.d.ts +1 -1
  319. package/node_modules/shell-quote/parse.js +63 -11
  320. package/node_modules/shell-quote/quote.d.ts +2 -1
  321. package/node_modules/shell-quote/quote.js +23 -3
  322. package/node_modules/uuid/package.json +17 -17
  323. package/package.json +6 -7
  324. package/scripts/setup-accessibility.mjs +175 -0
  325. package/node_modules/async-lock/AUTHORS +0 -21
  326. package/node_modules/async-lock/History.md +0 -132
  327. package/node_modules/async-lock/LICENSE +0 -22
  328. package/node_modules/async-lock/README.md +0 -177
  329. package/node_modules/async-lock/index.js +0 -2
  330. package/node_modules/async-lock/lib/index.js +0 -312
  331. package/node_modules/async-lock/package.json +0 -48
  332. package/node_modules/asyncbox/build/cjs/lib/asyncbox.d.ts +0 -103
  333. package/node_modules/asyncbox/build/cjs/lib/asyncbox.d.ts.map +0 -1
  334. package/node_modules/asyncbox/build/cjs/lib/asyncbox.js +0 -311
  335. package/node_modules/asyncbox/build/cjs/lib/asyncbox.js.map +0 -1
  336. package/node_modules/asyncbox/build/esm/lib/asyncbox.d.ts +0 -103
  337. package/node_modules/asyncbox/build/esm/lib/asyncbox.d.ts.map +0 -1
  338. package/node_modules/asyncbox/build/esm/lib/asyncbox.js +0 -298
  339. package/node_modules/asyncbox/build/esm/lib/asyncbox.js.map +0 -1
  340. package/node_modules/asyncbox/lib/asyncbox.ts +0 -382
  341. package/node_modules/shell-quote/.nycrc +0 -14
  342. package/node_modules/shell-quote/eslint.config.mjs +0 -29
  343. package/node_modules/shell-quote/security.md +0 -11
  344. package/node_modules/shell-quote/test/comment.js +0 -16
  345. package/node_modules/shell-quote/test/env.js +0 -52
  346. package/node_modules/shell-quote/test/env_fn.js +0 -21
  347. package/node_modules/shell-quote/test/op.js +0 -102
  348. package/node_modules/shell-quote/test/parse.js +0 -149
  349. package/node_modules/shell-quote/test/quote.js +0 -145
  350. package/node_modules/shell-quote/test/set.js +0 -31
@@ -1,4 +1,4 @@
1
- /*! Axios v1.20.0 Copyright (c) 2026 Matt Zabriskie and contributors */
1
+ /*! Axios v1.21.0 Copyright (c) 2026 Matt Zabriskie and contributors */
2
2
  (function (global, factory) {
3
3
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
4
4
  typeof define === 'function' && define.amd ? define(factory) :
@@ -847,11 +847,17 @@
847
847
  return false;
848
848
  }
849
849
  var prototype = getPrototypeOf(val);
850
- return (prototype === null || prototype === Object.prototype || getPrototypeOf(prototype) === null) &&
851
- // Treat safe own/inherited Symbol.toStringTag or Symbol.iterator members as
852
- // evidence the value is tagged/iterable, while ignoring members reachable
853
- // only through shared or terminal prototype boundaries.
854
- !hasOwnInPrototypeChain(val, toStringTag) && !hasOwnInPrototypeChain(val, iterator);
850
+ return (prototype === null || prototype === Object.prototype || getPrototypeOf(prototype) === null) && (
851
+ // Treat own Symbol.toStringTag or Symbol.iterator members as evidence the
852
+ // value is tagged/iterable, ignoring members reachable only through shared
853
+ // or terminal prototype boundaries. This is exactly what
854
+ // hasOwnInPrototypeChain(val, prop) computes here: every prototype admitted
855
+ // above (null, Object.prototype, or a terminal null-prototype template) is
856
+ // a boundary, so the walk never inspects anything but `val`'s own members,
857
+ // and stops before even those when `val` is itself the boundary
858
+ // Object.prototype. Checking that inline avoids allocating the walker's
859
+ // `seen` list twice per call on the mergeConfig / merge hot path.
860
+ isPrototypeBoundary(val, prototype, true) || !hasOwnProperty(val, toStringTag) && !hasOwnProperty(val, iterator));
855
861
  };
856
862
 
857
863
  /**
@@ -1113,15 +1119,29 @@
1113
1119
  caseless = _ref3.caseless,
1114
1120
  skipUndefined = _ref3.skipUndefined;
1115
1121
  var result = {};
1122
+ // Caseless lookup only applies to string keys — symbol keys are
1123
+ // identity-matched. Every string key that reaches `result` passes through
1124
+ // this index first, so it can never hold two case variants of one key and a
1125
+ // lowercase -> key map is exactly what findKey(result, key) would rescan
1126
+ // Object.keys(result) for on each assignment.
1127
+ var lowerCaseKeys = caseless ? Object.create(null) : null;
1116
1128
  var assignValue = function assignValue(val, key) {
1117
1129
  // Skip dangerous property names to prevent prototype pollution
1118
1130
  if (key === '__proto__' || key === 'constructor' || key === 'prototype') {
1119
1131
  return;
1120
1132
  }
1121
-
1122
- // findKey lowercases the key, so caseless lookup only applies to strings —
1123
- // symbol keys are identity-matched.
1124
- var targetKey = caseless && typeof key === 'string' && findKey(result, key) || key;
1133
+ var targetKey = key;
1134
+ if (lowerCaseKeys && typeof key === 'string') {
1135
+ var lowerKey = key.toLowerCase();
1136
+ var knownKey = lowerCaseKeys[lowerKey];
1137
+ // A key recorded but absent from `result` was skipped by skipUndefined;
1138
+ // the later spelling wins then, as it does for findKey.
1139
+ if (knownKey !== undefined && hasOwnProperty(result, knownKey)) {
1140
+ targetKey = knownKey;
1141
+ } else {
1142
+ lowerCaseKeys[lowerKey] = key;
1143
+ }
1144
+ }
1125
1145
  // Read via own-prop only — a bare `result[targetKey]` walks the prototype
1126
1146
  // chain, so a polluted Object.prototype value could surface here and get
1127
1147
  // copied into the merged result.
@@ -1142,7 +1162,7 @@
1142
1162
  continue;
1143
1163
  }
1144
1164
  forEach(source, assignValue);
1145
- if (_typeof(source) !== 'object' || isArray(source)) {
1165
+ if (_typeof(source) !== 'object' || isArray(source) || !Object.getOwnPropertySymbols) {
1146
1166
  continue;
1147
1167
  }
1148
1168
  var symbols = Object.getOwnPropertySymbols(source);
@@ -1297,7 +1317,27 @@
1297
1317
  if (!thing) return null;
1298
1318
  if (isArray(thing)) return thing;
1299
1319
  var i = thing.length;
1300
- if (!isNumber(i)) return null;
1320
+ if (!Number.isSafeInteger(i) || i < 0 || i > 0xffffffff) return null;
1321
+
1322
+ // Bound the copy by actual indexed properties, including hidden and inherited
1323
+ // members of array-like collections, rather than by the declared length alone.
1324
+ var indexes = new Set();
1325
+ var seen = new Set();
1326
+ var source = thing;
1327
+ while (source != null && indexes.size < i) {
1328
+ if (seen.has(source)) return null;
1329
+ seen.add(source);
1330
+ var prototype = getPrototypeOf(source);
1331
+ if (isPrototypeBoundary(source, prototype, source === thing)) break;
1332
+ Object.getOwnPropertyNames(source).forEach(function (key) {
1333
+ var index = +key;
1334
+ if (Number.isInteger(index) && index >= 0 && index < i && String(index) === key && hasOwnProperty(source, key)) {
1335
+ indexes.add(index);
1336
+ }
1337
+ });
1338
+ source = prototype;
1339
+ }
1340
+ if (indexes.size !== i) return null;
1301
1341
  var arr = new Array(i);
1302
1342
  while (i-- > 0) {
1303
1343
  arr[i] = thing[i];
@@ -1662,7 +1702,8 @@
1662
1702
  * @returns {Object} Headers parsed into an object
1663
1703
  */
1664
1704
  var parseHeaders = (function (rawHeaders) {
1665
- var parsed = {};
1705
+ // Header names are data, including __proto__; avoid inherited setters.
1706
+ var parsed = Object.create(null);
1666
1707
  var key;
1667
1708
  var val;
1668
1709
  var i;
@@ -1840,9 +1881,23 @@
1840
1881
  var isValidHeaderName = function isValidHeaderName(str) {
1841
1882
  return /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());
1842
1883
  };
1884
+
1885
+ // `__proto__` is a valid field name, and the one name the uppercase mapping at
1886
+ // the bottom of this file cannot reach: it is inherited from Object.prototype
1887
+ // instead of being declared on AxiosHeaders.prototype, so `self.__proto__ = v`
1888
+ // runs the inherited setter. That silently discards the header, and an array
1889
+ // value replaces the instance prototype, taking every method with it.
1890
+ // Store it under the same kind of case variant that mapping uses for `set` and
1891
+ // `constructor`. Header lookup is caseless, so it reads back under either
1892
+ // spelling, and no own `__proto__` slot is ever created for a later
1893
+ // `Object.assign` to copy onto a plain object through the same setter.
1894
+ var PROTO_HEADER_SLOT = '__Proto__';
1895
+ var headerSlot = function headerSlot(name) {
1896
+ return name === '__proto__' ? PROTO_HEADER_SLOT : name;
1897
+ };
1843
1898
  function matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {
1844
1899
  if (utils$1.isFunction(filter)) {
1845
- return filter.call(this, value, header);
1900
+ return filter.call(context, value, header);
1846
1901
  }
1847
1902
  if (isHeaderNameFilter) {
1848
1903
  value = header;
@@ -1890,7 +1945,7 @@
1890
1945
  }
1891
1946
  var key = utils$1.findKey(self, lHeader);
1892
1947
  if (!key || self[key] === undefined || _rewrite === true || _rewrite === undefined && self[key] !== false) {
1893
- self[key || _header] = normalizeValue(_value);
1948
+ self[headerSlot(key || _header)] = normalizeValue(_value);
1894
1949
  }
1895
1950
  }
1896
1951
  var setHeaders = function setHeaders(headers, _rewrite) {
@@ -2008,7 +2063,7 @@
2008
2063
  key: "normalize",
2009
2064
  value: function normalize(format) {
2010
2065
  var self = this;
2011
- var headers = {};
2066
+ var headers = Object.create(null);
2012
2067
  utils$1.forEach(this, function (value, header) {
2013
2068
  var key = utils$1.findKey(headers, header);
2014
2069
  if (key) {
@@ -2016,7 +2071,7 @@
2016
2071
  delete self[header];
2017
2072
  return;
2018
2073
  }
2019
- var normalized = format ? formatHeader(header) : String(header).trim();
2074
+ var normalized = headerSlot(format ? formatHeader(header) : String(header).trim());
2020
2075
  if (normalized !== header) {
2021
2076
  delete self[header];
2022
2077
  }
@@ -2206,6 +2261,60 @@
2206
2261
  }).filter(Boolean).join('; ');
2207
2262
  return message || error.name || 'AggregateError';
2208
2263
  }
2264
+
2265
+ // Shared with `Axios.prototype.request`, which splices the reconstructed
2266
+ // caller frames in ahead of this marker.
2267
+ var CAUSED_BY_SEPARATOR = '\nCaused by: ';
2268
+ var $causeStack = Symbol('causeStack');
2269
+
2270
+ // Match the section we appended, not marker-like text in an error message or
2271
+ // a replacement stack supplied by the caller. Do not re-read the cause's stack.
2272
+ function getCauseStackIndex(error, stack) {
2273
+ var causeStack = utils$1.hasOwnProp(error, $causeStack) && error[$causeStack];
2274
+ return causeStack && stack.endsWith(causeStack) ? stack.length - causeStack.length : -1;
2275
+ }
2276
+
2277
+ /**
2278
+ * Append the stack of a wrapped error to `target.stack`.
2279
+ *
2280
+ * `cause` already exposes the original error for tooling that walks the standard
2281
+ * cause chain, but many error reporters read `stack` and nothing else. Inlining
2282
+ * the wrapped stack there means those reporters surface the underlying failure
2283
+ * instead of the axios frames that normalized it (see #6670).
2284
+ *
2285
+ * Every read is defensive: a custom `Error.prepareStackTrace` hook, a runtime
2286
+ * without stack support, or a replaced `stack` property can leave the value
2287
+ * missing, non-string, or read-only, and normalizing an error must not throw
2288
+ * because of that.
2289
+ *
2290
+ * @param {Error} target The AxiosError being built.
2291
+ * @param {Error} source The error being wrapped.
2292
+ *
2293
+ * @returns {void}
2294
+ */
2295
+ function appendCauseStack(target, source) {
2296
+ try {
2297
+ var sourceStack = source && source.stack;
2298
+ if (typeof sourceStack !== 'string' || !sourceStack) {
2299
+ return;
2300
+ }
2301
+ var targetStack = target.stack;
2302
+ if (typeof targetStack !== 'string' || !targetStack) {
2303
+ return;
2304
+ }
2305
+
2306
+ // Each call to `from()` creates a fresh target. Re-wrapping includes the
2307
+ // previous stack verbatim, adding one cause section per wrap.
2308
+ var causeStack = CAUSED_BY_SEPARATOR + sourceStack;
2309
+ target.stack = targetStack + causeStack;
2310
+ Object.defineProperty(target, $causeStack, {
2311
+ __proto__: null,
2312
+ value: causeStack
2313
+ });
2314
+ } catch (e) {
2315
+ // Ignore failures from custom stack hooks or un-writable stack properties.
2316
+ }
2317
+ }
2209
2318
  var AxiosError = /*#__PURE__*/function (_Error) {
2210
2319
  /**
2211
2320
  * Create an Error with the specified message, config, error code, request and response.
@@ -2301,6 +2410,10 @@
2301
2410
  });
2302
2411
  axiosError.name = error.name;
2303
2412
 
2413
+ // Inline the wrapped stack for reporters that read only `stack`; the `cause`
2414
+ // property above already covers cause-aware tooling.
2415
+ appendCauseStack(axiosError, error);
2416
+
2304
2417
  // Preserve status from the original error if not already set from response
2305
2418
  if (error.status != null && axiosError.status == null) {
2306
2419
  axiosError.status = error.status;
@@ -2656,6 +2769,15 @@
2656
2769
  handlers.pop();
2657
2770
  }
2658
2771
  }
2772
+
2773
+ // Preserve the array-key coercion used before IDs were stored in a Map, without
2774
+ // treating null, empty strings, or noncanonical numeric strings as ID zero.
2775
+ function normalizeHandlerId(id) {
2776
+ if (typeof id === 'string' && id !== '' && String(Number(id)) === id) {
2777
+ return Number(id);
2778
+ }
2779
+ return id;
2780
+ }
2659
2781
  function syncHandlerEntries(manager, internals) {
2660
2782
  var handlers = manager.handlers;
2661
2783
  var length = countHandlers(handlers);
@@ -2733,9 +2855,10 @@
2733
2855
  value: function eject(id) {
2734
2856
  var internals = this[$internals];
2735
2857
  syncHandlerEntries(this, internals);
2736
- var entry = internals.handlerEntries.get(id);
2858
+ var handlerId = normalizeHandlerId(id);
2859
+ var entry = internals.handlerEntries.get(handlerId);
2737
2860
  if (entry) {
2738
- internals.handlerEntries["delete"](id);
2861
+ internals.handlerEntries["delete"](handlerId);
2739
2862
 
2740
2863
  // Ignore IDs invalidated by clear or direct replacement of handlers.
2741
2864
  if (this.handlers[entry.index] !== entry.handler) {
@@ -2804,7 +2927,8 @@
2804
2927
  clarifyTimeoutError: false,
2805
2928
  legacyInterceptorReqResOrdering: true,
2806
2929
  advertiseZstdAcceptEncoding: false,
2807
- validateStatusUndefinedResolves: true
2930
+ validateStatusUndefinedResolves: true,
2931
+ encodeBasicAuthUsername: false
2808
2932
  };
2809
2933
 
2810
2934
  var URLSearchParams$1 = typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;
@@ -2938,6 +3062,29 @@
2938
3062
  }
2939
3063
  return obj;
2940
3064
  }
3065
+ function normalizeArray(value) {
3066
+ if (!utils$1.isArray(value)) return value;
3067
+ var keys = Object.keys(value);
3068
+ return keys.length !== value.length || keys.some(function (key, index) {
3069
+ return key !== String(index);
3070
+ }) ? arrayToObject(value) : value;
3071
+ }
3072
+ function normalizeArrays(obj) {
3073
+ var pending = [obj];
3074
+ var _loop = function _loop() {
3075
+ var target = pending.pop();
3076
+ Object.keys(target).forEach(function (key) {
3077
+ var value = target[key] = normalizeArray(target[key]);
3078
+ if (utils$1.isArray(value) || utils$1.isPlainObject(value)) {
3079
+ pending.push(value);
3080
+ }
3081
+ });
3082
+ };
3083
+ while (pending.length) {
3084
+ _loop();
3085
+ }
3086
+ return obj;
3087
+ }
2941
3088
 
2942
3089
  /**
2943
3090
  * It takes a FormData object and returns a JavaScript object
@@ -2956,6 +3103,7 @@
2956
3103
  name = !name && utils$1.isArray(target) ? target.length : name;
2957
3104
  if (isLast) {
2958
3105
  if (utils$1.hasOwnProp(target, name)) {
3106
+ target[name] = normalizeArray(target[name]);
2959
3107
  target[name] = utils$1.isArray(target[name]) ? target[name].concat(value) : [target[name], value];
2960
3108
  } else {
2961
3109
  target[name] = value;
@@ -2976,7 +3124,7 @@
2976
3124
  utils$1.forEachEntry(formData, function (name, value) {
2977
3125
  buildPath(parsePropPath(name), value, obj, 0);
2978
3126
  });
2979
- return obj;
3127
+ return normalizeArrays(obj);
2980
3128
  }
2981
3129
  return null;
2982
3130
  }
@@ -3191,9 +3339,111 @@
3191
3339
 
3192
3340
  function parseProtocol(url) {
3193
3341
  var match = /^([-+\w]{1,25}):(?:\/\/)?/.exec(url);
3194
- return match && match[1] || '';
3342
+ return match && match[1].toLowerCase() || '';
3195
3343
  }
3196
3344
 
3345
+ var decodeCookieValue = function decodeCookieValue(value) {
3346
+ try {
3347
+ return decodeURIComponent(value);
3348
+ } catch (e) {
3349
+ return value;
3350
+ }
3351
+ };
3352
+ var cookies = platform.hasStandardBrowserEnv ?
3353
+ // Standard browser envs support document.cookie
3354
+ {
3355
+ write: function write(name, value, expires, path, domain, secure, sameSite) {
3356
+ if (typeof document === 'undefined') return;
3357
+ var cookie = ["".concat(name, "=").concat(encodeURIComponent(value))];
3358
+ if (utils$1.isNumber(expires)) {
3359
+ cookie.push("expires=".concat(new Date(expires).toUTCString()));
3360
+ }
3361
+ if (utils$1.isString(path)) {
3362
+ cookie.push("path=".concat(path));
3363
+ }
3364
+ if (utils$1.isString(domain)) {
3365
+ cookie.push("domain=".concat(domain));
3366
+ }
3367
+ if (secure === true) {
3368
+ cookie.push('secure');
3369
+ }
3370
+ if (utils$1.isString(sameSite)) {
3371
+ cookie.push("SameSite=".concat(sameSite));
3372
+ }
3373
+ document.cookie = cookie.join('; ');
3374
+ },
3375
+ read: function read(name) {
3376
+ if (typeof document === 'undefined') return null;
3377
+ var cookieString = document.cookie;
3378
+ if (!cookieString) return null;
3379
+ // Match name=value by splitting on the semicolon separator instead of building a
3380
+ // RegExp from `name` — interpolating an unescaped string into a RegExp would let
3381
+ // metacharacters (e.g. `.+?` in an attacker-influenced cookie name) cause ReDoS or
3382
+ // match the wrong cookie. Browsers may serialize cookie pairs as either ";" or
3383
+ // "; ", so ignore optional whitespace before each cookie name.
3384
+ var cookies = cookieString.split(';');
3385
+ for (var i = 0; i < cookies.length; i++) {
3386
+ var cookie = cookies[i].replace(/^\s+/, '');
3387
+ var eq = cookie.indexOf('=');
3388
+ if (eq !== -1 && cookie.slice(0, eq) === name) {
3389
+ return decodeCookieValue(cookie.slice(eq + 1));
3390
+ }
3391
+ }
3392
+ return null;
3393
+ },
3394
+ readAsync: function readAsync(name) {
3395
+ var _this = this;
3396
+ return _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
3397
+ var store, cookie;
3398
+ return _regenerator().w(function (_context) {
3399
+ while (1) switch (_context.p = _context.n) {
3400
+ case 0:
3401
+ _context.p = 0;
3402
+ store = typeof window !== 'undefined' && window.cookieStore;
3403
+ if (!(store && utils$1.isFunction(store.get))) {
3404
+ _context.n = 2;
3405
+ break;
3406
+ }
3407
+ _context.n = 1;
3408
+ return store.get(name);
3409
+ case 1:
3410
+ cookie = _context.v;
3411
+ return _context.a(2, cookie ? decodeCookieValue(cookie.value) : null);
3412
+ case 2:
3413
+ _context.n = 4;
3414
+ break;
3415
+ case 3:
3416
+ _context.p = 3;
3417
+ _context.v;
3418
+ case 4:
3419
+ return _context.a(2, _this.read(name));
3420
+ }
3421
+ }, _callee, null, [[0, 3]]);
3422
+ }))();
3423
+ },
3424
+ remove: function remove(name) {
3425
+ this.write(name, '', Date.now() - 86400000, '/');
3426
+ }
3427
+ } :
3428
+ // Non-standard browser env (web workers, react-native) lack needed support.
3429
+ {
3430
+ write: function write() {},
3431
+ read: function read() {
3432
+ return null;
3433
+ },
3434
+ readAsync: function readAsync() {
3435
+ return _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2() {
3436
+ return _regenerator().w(function (_context2) {
3437
+ while (1) switch (_context2.n) {
3438
+ case 0:
3439
+ return _context2.a(2, null);
3440
+ }
3441
+ }, _callee2);
3442
+ }))();
3443
+ },
3444
+ remove: function remove() {}
3445
+ };
3446
+
3197
3447
  /**
3198
3448
  * Calculate data maxRate
3199
3449
  * @param {Number} [samplesCount= 10]
@@ -3334,72 +3584,15 @@
3334
3584
  };
3335
3585
  };
3336
3586
 
3337
- var isURLSameOrigin = platform.hasStandardBrowserEnv ? function (origin, isMSIE) {
3587
+ var isURLSameOrigin = platform.hasStandardBrowserEnv ? function (origin) {
3338
3588
  return function (url) {
3339
- url = new URL(url, platform.origin);
3340
- return origin.protocol === url.protocol && origin.host === url.host && (isMSIE || origin.port === url.port);
3589
+ url = new URL(url, document.baseURI || platform.origin);
3590
+ return origin.protocol === url.protocol && origin.host === url.host && origin.port === url.port;
3341
3591
  };
3342
- }(new URL(platform.origin), platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)) : function () {
3592
+ }(new URL(platform.origin)) : function () {
3343
3593
  return true;
3344
3594
  };
3345
3595
 
3346
- var cookies = platform.hasStandardBrowserEnv ?
3347
- // Standard browser envs support document.cookie
3348
- {
3349
- write: function write(name, value, expires, path, domain, secure, sameSite) {
3350
- if (typeof document === 'undefined') return;
3351
- var cookie = ["".concat(name, "=").concat(encodeURIComponent(value))];
3352
- if (utils$1.isNumber(expires)) {
3353
- cookie.push("expires=".concat(new Date(expires).toUTCString()));
3354
- }
3355
- if (utils$1.isString(path)) {
3356
- cookie.push("path=".concat(path));
3357
- }
3358
- if (utils$1.isString(domain)) {
3359
- cookie.push("domain=".concat(domain));
3360
- }
3361
- if (secure === true) {
3362
- cookie.push('secure');
3363
- }
3364
- if (utils$1.isString(sameSite)) {
3365
- cookie.push("SameSite=".concat(sameSite));
3366
- }
3367
- document.cookie = cookie.join('; ');
3368
- },
3369
- read: function read(name) {
3370
- if (typeof document === 'undefined') return null;
3371
- // Match name=value by splitting on the semicolon separator instead of building a
3372
- // RegExp from `name` — interpolating an unescaped string into a RegExp would let
3373
- // metacharacters (e.g. `.+?` in an attacker-influenced cookie name) cause ReDoS or
3374
- // match the wrong cookie. Browsers may serialize cookie pairs as either ";" or
3375
- // "; ", so ignore optional whitespace before each cookie name.
3376
- var cookies = document.cookie.split(';');
3377
- for (var i = 0; i < cookies.length; i++) {
3378
- var cookie = cookies[i].replace(/^\s+/, '');
3379
- var eq = cookie.indexOf('=');
3380
- if (eq !== -1 && cookie.slice(0, eq) === name) {
3381
- try {
3382
- return decodeURIComponent(cookie.slice(eq + 1));
3383
- } catch (e) {
3384
- return cookie.slice(eq + 1);
3385
- }
3386
- }
3387
- }
3388
- return null;
3389
- },
3390
- remove: function remove(name) {
3391
- this.write(name, '', Date.now() - 86400000, '/');
3392
- }
3393
- } :
3394
- // Non-standard browser env (web workers, react-native) lack needed support.
3395
- {
3396
- write: function write() {},
3397
- read: function read() {
3398
- return null;
3399
- },
3400
- remove: function remove() {}
3401
- };
3402
-
3403
3596
  /**
3404
3597
  * Determines whether the specified URL is absolute
3405
3598
  *
@@ -3494,18 +3687,237 @@
3494
3687
  return requestedURL;
3495
3688
  }
3496
3689
 
3690
+ function assertParamsAcyclic(params) {
3691
+ var pending = [{
3692
+ value: params
3693
+ }];
3694
+ var active = new WeakSet();
3695
+ var visited = new WeakSet();
3696
+ var _loop = function _loop() {
3697
+ var _pending$pop = pending.pop(),
3698
+ value = _pending$pop.value,
3699
+ done = _pending$pop.done;
3700
+ if (!utils$1.isPlainObject(value) && !utils$1.isArray(value)) return 0; // continue
3701
+ if (done) {
3702
+ active["delete"](value);
3703
+ return 0; // continue
3704
+ }
3705
+ if (active.has(value)) {
3706
+ throw new AxiosError('Circular reference detected in params', AxiosError.ERR_BAD_OPTION_VALUE);
3707
+ }
3708
+ if (visited.has(value)) return 0; // continue
3709
+ visited.add(value);
3710
+ active.add(value);
3711
+ pending.push({
3712
+ value: value,
3713
+ done: true
3714
+ });
3715
+ var keys = Object.keys(value);
3716
+ if (Object.getOwnPropertySymbols && Object.getOwnPropertyDescriptor) {
3717
+ Object.getOwnPropertySymbols(value).forEach(function (key) {
3718
+ var descriptor = Object.getOwnPropertyDescriptor(value, key);
3719
+ if (descriptor && descriptor.enumerable) keys.push(key);
3720
+ });
3721
+ }
3722
+ // Shallow array elements retain fields filtered during plain-object merges.
3723
+ // Inspect reserved data properties without evaluating their accessors.
3724
+ keys.forEach(function (key) {
3725
+ if (key === '__proto__' || key === 'constructor' || key === 'prototype') {
3726
+ var descriptor = Object.getOwnPropertyDescriptor(value, key);
3727
+ if (descriptor && utils$1.hasOwnProp(descriptor, 'value')) {
3728
+ pending.push({
3729
+ value: descriptor.value
3730
+ });
3731
+ }
3732
+ } else {
3733
+ pending.push({
3734
+ value: value[key]
3735
+ });
3736
+ }
3737
+ });
3738
+ },
3739
+ _ret;
3740
+ while (pending.length) {
3741
+ _ret = _loop();
3742
+ if (_ret === 0) continue;
3743
+ }
3744
+ }
3745
+
3497
3746
  var headersToObject = function headersToObject(thing) {
3498
3747
  return thing instanceof AxiosHeaders ? _objectSpread2({}, thing) : thing;
3499
3748
  };
3500
3749
  var ownEnumerableKeys = function ownEnumerableKeys(thing) {
3501
3750
  if (Object.getOwnPropertySymbols && Object.getOwnPropertyDescriptor) {
3502
3751
  return Object.keys(thing).concat(Object.getOwnPropertySymbols(thing).filter(function (symbol) {
3503
- return Object.getOwnPropertyDescriptor(thing, symbol).enumerable;
3752
+ var descriptor = Object.getOwnPropertyDescriptor(thing, symbol);
3753
+ return descriptor && descriptor.enumerable;
3504
3754
  }));
3505
3755
  }
3506
3756
  return Object.keys(thing);
3507
3757
  };
3508
3758
 
3759
+ // Copy params without recursive merges so the serializer remains responsible
3760
+ // for its depth policy. Only visit defaults that contribute to the result.
3761
+ function mergeParams(a, b) {
3762
+ var pending = [];
3763
+ var copies = new WeakMap();
3764
+ var empty = {};
3765
+ function copy(target, source) {
3766
+ if (!utils$1.isPlainObject(source)) {
3767
+ return utils$1.isArray(source) ? source.slice() : source;
3768
+ }
3769
+ var base = utils$1.isPlainObject(target) ? target : empty;
3770
+ var bases = copies.get(source);
3771
+ if (!bases) {
3772
+ bases = new WeakMap();
3773
+ copies.set(source, bases);
3774
+ }
3775
+ if (bases.has(base)) return bases.get(base);
3776
+ var result = {};
3777
+ bases.set(base, result);
3778
+ pending.push({
3779
+ base: base,
3780
+ source: source,
3781
+ result: result
3782
+ });
3783
+ return result;
3784
+ }
3785
+ var result = utils$1.isUndefined(b) ? copy(undefined, a) : copy(a, b);
3786
+ var _loop = function _loop() {
3787
+ var _pending$pop = pending.pop(),
3788
+ base = _pending$pop.base,
3789
+ source = _pending$pop.source,
3790
+ target = _pending$pop.result;
3791
+ var baseKeys = new Set(ownEnumerableKeys(base));
3792
+ var sourceKeys = new Set(ownEnumerableKeys(source));
3793
+ var keys = new Set([].concat(_toConsumableArray(baseKeys), _toConsumableArray(sourceKeys)));
3794
+ keys.forEach(function (key) {
3795
+ if (key === '__proto__' || key === 'constructor' || key === 'prototype') return;
3796
+ var hasSource = sourceKeys.has(key);
3797
+ var value = hasSource ? source[key] : undefined;
3798
+ var previous = (!hasSource || utils$1.isPlainObject(value)) && baseKeys.has(key) ? base[key] : undefined;
3799
+ target[key] = hasSource ? copy(previous, value) : copy(undefined, previous);
3800
+ });
3801
+ };
3802
+ while (pending.length) {
3803
+ _loop();
3804
+ }
3805
+ assertParamsAcyclic(result);
3806
+ return result;
3807
+ }
3808
+ function getMergedValue(target, source, prop, caseless) {
3809
+ if (utils$1.isPlainObject(target) && utils$1.isPlainObject(source)) {
3810
+ return utils$1.merge.call({
3811
+ caseless: caseless
3812
+ }, target, source);
3813
+ } else if (utils$1.isPlainObject(source)) {
3814
+ return utils$1.merge({}, source);
3815
+ } else if (utils$1.isArray(source)) {
3816
+ return source.slice();
3817
+ }
3818
+ return source;
3819
+ }
3820
+ function mergeDeepProperties(a, b, prop, caseless) {
3821
+ if (!utils$1.isUndefined(b)) {
3822
+ return getMergedValue(a, b, prop, caseless);
3823
+ } else if (!utils$1.isUndefined(a)) {
3824
+ return getMergedValue(undefined, a, prop, caseless);
3825
+ }
3826
+ }
3827
+
3828
+ // eslint-disable-next-line consistent-return
3829
+ function valueFromConfig2(a, b) {
3830
+ if (!utils$1.isUndefined(b)) {
3831
+ return getMergedValue(undefined, b);
3832
+ }
3833
+ }
3834
+
3835
+ // eslint-disable-next-line consistent-return
3836
+ function defaultToConfig2(a, b) {
3837
+ if (!utils$1.isUndefined(b)) {
3838
+ return getMergedValue(undefined, b);
3839
+ } else if (!utils$1.isUndefined(a)) {
3840
+ return getMergedValue(undefined, a);
3841
+ }
3842
+ }
3843
+ function getMergedTransitionalOption(config1, config2, prop) {
3844
+ var transitional2 = utils$1.hasOwnProp(config2, 'transitional') ? config2.transitional : undefined;
3845
+ if (!utils$1.isUndefined(transitional2)) {
3846
+ if (utils$1.isPlainObject(transitional2)) {
3847
+ if (utils$1.hasOwnProp(transitional2, prop)) {
3848
+ return transitional2[prop];
3849
+ }
3850
+ } else {
3851
+ return undefined;
3852
+ }
3853
+ }
3854
+ var transitional1 = utils$1.hasOwnProp(config1, 'transitional') ? config1.transitional : undefined;
3855
+ if (utils$1.isPlainObject(transitional1) && utils$1.hasOwnProp(transitional1, prop)) {
3856
+ return transitional1[prop];
3857
+ }
3858
+ return undefined;
3859
+ }
3860
+
3861
+ // eslint-disable-next-line consistent-return
3862
+ function mergeDirectKeys(a, b, prop, config1, config2) {
3863
+ if (utils$1.hasOwnProp(config2, prop)) {
3864
+ return getMergedValue(a, b);
3865
+ } else if (utils$1.hasOwnProp(config1, prop)) {
3866
+ return getMergedValue(undefined, a);
3867
+ }
3868
+ }
3869
+ function mergeHeaders(a, b, prop) {
3870
+ return mergeDeepProperties(headersToObject(a), headersToObject(b), prop, true);
3871
+ }
3872
+
3873
+ // Null-proto, frozen descriptor so a polluted Object.prototype.get cannot turn
3874
+ // this data descriptor into an accessor descriptor on the way in.
3875
+ // defineProperty only reads it, so one shared instance serves every call.
3876
+ var hasOwnPropertyDescriptor = Object.freeze({
3877
+ __proto__: null,
3878
+ value: Object.prototype.hasOwnProperty,
3879
+ enumerable: false,
3880
+ writable: true,
3881
+ configurable: true
3882
+ });
3883
+
3884
+ // The strategy table and the strategies above are stateless, so they are
3885
+ // built once at module load instead of on every call: mergeConfig runs at
3886
+ // most twice per request (once from a method alias, once from `_request`).
3887
+ var mergeMap = {
3888
+ url: valueFromConfig2,
3889
+ method: valueFromConfig2,
3890
+ data: valueFromConfig2,
3891
+ baseURL: defaultToConfig2,
3892
+ transformRequest: defaultToConfig2,
3893
+ transformResponse: defaultToConfig2,
3894
+ params: mergeParams,
3895
+ paramsSerializer: defaultToConfig2,
3896
+ timeout: defaultToConfig2,
3897
+ timeoutErrorMessage: defaultToConfig2,
3898
+ withCredentials: defaultToConfig2,
3899
+ withXSRFToken: defaultToConfig2,
3900
+ adapter: defaultToConfig2,
3901
+ responseType: defaultToConfig2,
3902
+ xsrfCookieName: defaultToConfig2,
3903
+ xsrfHeaderName: defaultToConfig2,
3904
+ onUploadProgress: defaultToConfig2,
3905
+ onDownloadProgress: defaultToConfig2,
3906
+ decompress: defaultToConfig2,
3907
+ maxContentLength: defaultToConfig2,
3908
+ maxBodyLength: defaultToConfig2,
3909
+ beforeRedirect: defaultToConfig2,
3910
+ transport: defaultToConfig2,
3911
+ httpAgent: defaultToConfig2,
3912
+ httpsAgent: defaultToConfig2,
3913
+ cancelToken: defaultToConfig2,
3914
+ socketPath: defaultToConfig2,
3915
+ allowedSocketPaths: defaultToConfig2,
3916
+ responseEncoding: defaultToConfig2,
3917
+ validateStatus: mergeDirectKeys,
3918
+ headers: mergeHeaders
3919
+ };
3920
+
3509
3921
  /**
3510
3922
  * Config-specific merge-function which creates a new config-object
3511
3923
  * by merging two configuration objects together.
@@ -3525,119 +3937,18 @@
3525
3937
  // `hasOwnProperty` is restored as a non-enumerable own slot to preserve
3526
3938
  // ergonomics for user code that relies on it.
3527
3939
  var config = Object.create(null);
3528
- Object.defineProperty(config, 'hasOwnProperty', {
3529
- // Null-proto descriptor so a polluted Object.prototype.get cannot turn
3530
- // this data descriptor into an accessor descriptor on the way in.
3531
- __proto__: null,
3532
- value: Object.prototype.hasOwnProperty,
3533
- enumerable: false,
3534
- writable: true,
3535
- configurable: true
3536
- });
3537
- function getMergedValue(target, source, prop, caseless) {
3538
- if (utils$1.isPlainObject(target) && utils$1.isPlainObject(source)) {
3539
- return utils$1.merge.call({
3540
- caseless: caseless
3541
- }, target, source);
3542
- } else if (utils$1.isPlainObject(source)) {
3543
- return utils$1.merge({}, source);
3544
- } else if (utils$1.isArray(source)) {
3545
- return source.slice();
3546
- }
3547
- return source;
3548
- }
3549
- function mergeDeepProperties(a, b, prop, caseless) {
3550
- if (!utils$1.isUndefined(b)) {
3551
- return getMergedValue(a, b, prop, caseless);
3552
- } else if (!utils$1.isUndefined(a)) {
3553
- return getMergedValue(undefined, a, prop, caseless);
3554
- }
3555
- }
3556
-
3557
- // eslint-disable-next-line consistent-return
3558
- function valueFromConfig2(a, b) {
3559
- if (!utils$1.isUndefined(b)) {
3560
- return getMergedValue(undefined, b);
3561
- }
3562
- }
3563
-
3564
- // eslint-disable-next-line consistent-return
3565
- function defaultToConfig2(a, b) {
3566
- if (!utils$1.isUndefined(b)) {
3567
- return getMergedValue(undefined, b);
3568
- } else if (!utils$1.isUndefined(a)) {
3569
- return getMergedValue(undefined, a);
3570
- }
3571
- }
3572
- function getMergedTransitionalOption(prop) {
3573
- var transitional2 = utils$1.hasOwnProp(config2, 'transitional') ? config2.transitional : undefined;
3574
- if (!utils$1.isUndefined(transitional2)) {
3575
- if (utils$1.isPlainObject(transitional2)) {
3576
- if (utils$1.hasOwnProp(transitional2, prop)) {
3577
- return transitional2[prop];
3578
- }
3579
- } else {
3580
- return undefined;
3581
- }
3582
- }
3583
- var transitional1 = utils$1.hasOwnProp(config1, 'transitional') ? config1.transitional : undefined;
3584
- if (utils$1.isPlainObject(transitional1) && utils$1.hasOwnProp(transitional1, prop)) {
3585
- return transitional1[prop];
3586
- }
3587
- return undefined;
3588
- }
3589
-
3590
- // eslint-disable-next-line consistent-return
3591
- function mergeDirectKeys(a, b, prop) {
3592
- if (utils$1.hasOwnProp(config2, prop)) {
3593
- return getMergedValue(a, b);
3594
- } else if (utils$1.hasOwnProp(config1, prop)) {
3595
- return getMergedValue(undefined, a);
3596
- }
3597
- }
3598
- var mergeMap = {
3599
- url: valueFromConfig2,
3600
- method: valueFromConfig2,
3601
- data: valueFromConfig2,
3602
- baseURL: defaultToConfig2,
3603
- transformRequest: defaultToConfig2,
3604
- transformResponse: defaultToConfig2,
3605
- paramsSerializer: defaultToConfig2,
3606
- timeout: defaultToConfig2,
3607
- timeoutErrorMessage: defaultToConfig2,
3608
- withCredentials: defaultToConfig2,
3609
- withXSRFToken: defaultToConfig2,
3610
- adapter: defaultToConfig2,
3611
- responseType: defaultToConfig2,
3612
- xsrfCookieName: defaultToConfig2,
3613
- xsrfHeaderName: defaultToConfig2,
3614
- onUploadProgress: defaultToConfig2,
3615
- onDownloadProgress: defaultToConfig2,
3616
- decompress: defaultToConfig2,
3617
- maxContentLength: defaultToConfig2,
3618
- maxBodyLength: defaultToConfig2,
3619
- beforeRedirect: defaultToConfig2,
3620
- transport: defaultToConfig2,
3621
- httpAgent: defaultToConfig2,
3622
- httpsAgent: defaultToConfig2,
3623
- cancelToken: defaultToConfig2,
3624
- socketPath: defaultToConfig2,
3625
- allowedSocketPaths: defaultToConfig2,
3626
- responseEncoding: defaultToConfig2,
3627
- validateStatus: mergeDirectKeys,
3628
- headers: function headers(a, b, prop) {
3629
- return mergeDeepProperties(headersToObject(a), headersToObject(b), prop, true);
3630
- }
3631
- };
3632
- utils$1.forEach(ownEnumerableKeys(_objectSpread2(_objectSpread2({}, config1), config2)), function computeConfigValue(prop) {
3633
- if (prop === '__proto__' || prop === 'constructor' || prop === 'prototype') return;
3940
+ Object.defineProperty(config, 'hasOwnProperty', hasOwnPropertyDescriptor);
3941
+ var keys = ownEnumerableKeys(_objectSpread2(_objectSpread2({}, config1), config2));
3942
+ for (var i = 0, len = keys.length; i < len; i++) {
3943
+ var prop = keys[i];
3944
+ if (prop === '__proto__' || prop === 'constructor' || prop === 'prototype') continue;
3634
3945
  var merge = utils$1.hasOwnProp(mergeMap, prop) ? mergeMap[prop] : mergeDeepProperties;
3635
3946
  var a = utils$1.hasOwnProp(config1, prop) ? config1[prop] : undefined;
3636
3947
  var b = utils$1.hasOwnProp(config2, prop) ? config2[prop] : undefined;
3637
- var configValue = merge(a, b, prop);
3948
+ var configValue = merge === mergeDirectKeys ? merge(a, b, prop, config1, config2) : merge(a, b, prop);
3638
3949
  utils$1.isUndefined(configValue) && merge !== mergeDirectKeys || (config[prop] = configValue);
3639
- });
3640
- if (utils$1.hasOwnProp(config2, 'validateStatus') && utils$1.isUndefined(config2.validateStatus) && getMergedTransitionalOption('validateStatusUndefinedResolves') === false) {
3950
+ }
3951
+ if (utils$1.hasOwnProp(config2, 'validateStatus') && utils$1.isUndefined(config2.validateStatus) && getMergedTransitionalOption(config1, config2, 'validateStatusUndefinedResolves') === false) {
3641
3952
  if (utils$1.hasOwnProp(config1, 'validateStatus')) {
3642
3953
  config.validateStatus = getMergedValue(undefined, config1.validateStatus);
3643
3954
  } else {
@@ -3688,7 +3999,11 @@
3688
3999
  return String.fromCharCode(parseInt(hex, 16));
3689
4000
  });
3690
4001
  };
4002
+ var readCookie = function readCookie(name) {
4003
+ return cookies.read(name);
4004
+ };
3691
4005
  function resolveConfig(config) {
4006
+ var readXsrfCookie = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : readCookie;
3692
4007
  var newConfig = mergeConfig({}, config);
3693
4008
 
3694
4009
  // Read only own properties to prevent prototype pollution gadgets
@@ -3712,8 +4027,12 @@
3712
4027
  if (auth) {
3713
4028
  var username = utils$1.getSafeProp(auth, 'username') || '';
3714
4029
  var password = utils$1.getSafeProp(auth, 'password') || '';
4030
+ var transitional = own('transitional');
4031
+ var encodeUsername = transitional && utils$1.hasOwnProp(transitional, 'encodeBasicAuthUsername') && transitional.encodeBasicAuthUsername === true;
3715
4032
  try {
3716
- headers.set('Authorization', 'Basic ' + btoa(username + ':' + (password ? encodeUTF8$1(password) : '')));
4033
+ headers.set('Authorization',
4034
+ // Preserve legacy username bytes unless the caller opts in to UTF-8.
4035
+ 'Basic ' + btoa((encodeUsername ? encodeUTF8$1(username) : username) + ':' + (password ? encodeUTF8$1(password) : '')));
3717
4036
  } catch (e) {
3718
4037
  throw AxiosError.from(e, AxiosError.ERR_BAD_OPTION_VALUE, config);
3719
4038
  }
@@ -3742,7 +4061,7 @@
3742
4061
  // the XSRF token cross-origin.
3743
4062
  var shouldSendXSRF = withXSRFToken === true || withXSRFToken == null && isURLSameOrigin(newConfig.url);
3744
4063
  if (shouldSendXSRF) {
3745
- var xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);
4064
+ var xsrfValue = xsrfHeaderName && xsrfCookieName && readXsrfCookie(xsrfCookieName);
3746
4065
  if (xsrfValue) {
3747
4066
  headers.set(xsrfHeaderName, xsrfValue);
3748
4067
  }
@@ -3754,19 +4073,55 @@
3754
4073
  var isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';
3755
4074
  var xhrAdapter = isXHRAdapterSupported && function (config) {
3756
4075
  return new Promise(function dispatchXhrRequest(resolve, reject) {
3757
- var _config = resolveConfig(config);
4076
+ var useAsyncXsrf;
4077
+ try {
4078
+ var store = platform.hasStandardBrowserEnv && typeof window !== 'undefined' && window.cookieStore;
4079
+ useAsyncXsrf = store && utils$1.isFunction(store.get);
4080
+ } catch (e) {
4081
+ // A restricted Cookie Store getter must retain the synchronous fallback.
4082
+ }
4083
+ var xsrfCookieName;
4084
+ var _config = resolveConfig(config, useAsyncXsrf ? function (name) {
4085
+ xsrfCookieName = name;
4086
+ return null;
4087
+ } : undefined);
3758
4088
  var requestData = _config.data;
3759
4089
  var requestHeaders = AxiosHeaders.from(_config.headers).normalize();
3760
4090
  var responseType = _config.responseType,
3761
4091
  onUploadProgress = _config.onUploadProgress,
3762
4092
  onDownloadProgress = _config.onDownloadProgress;
3763
4093
  var onCanceled;
4094
+ var timeoutId;
3764
4095
  var uploadThrottled, downloadThrottled;
3765
4096
  var flushUpload, flushDownload, flushDownloadWithEvent;
3766
4097
  function done() {
3767
- flushUpload && flushUpload(); // flush events
3768
- flushDownload && flushDownload(); // flush events
4098
+ clearTimeout(timeoutId);
4099
+ // A final progress callback must not prevent the remaining cleanup.
4100
+ // Report errors asynchronously, as onloadend and the throttle timer do.
4101
+ try {
4102
+ flushUpload && flushUpload(); // flush events
4103
+ } catch (err) {
4104
+ setTimeout(function () {
4105
+ throw err;
4106
+ });
4107
+ }
4108
+ try {
4109
+ flushDownload && flushDownload(); // flush events
4110
+ } catch (err) {
4111
+ setTimeout(function () {
4112
+ throw err;
4113
+ });
4114
+ }
3769
4115
 
4116
+ // A flush can synchronously cancel the request and reenter done().
4117
+ // In that case the inner call has already detached these listeners.
4118
+ if (request) {
4119
+ downloadThrottled && request.removeEventListener('progress', downloadThrottled);
4120
+ if (request.upload) {
4121
+ uploadThrottled && request.upload.removeEventListener('progress', uploadThrottled);
4122
+ flushUpload && request.upload.removeEventListener('loadend', flushUpload);
4123
+ }
4124
+ }
3770
4125
  _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);
3771
4126
  _config.signal && _config.signal.removeEventListener('abort', onCanceled);
3772
4127
  }
@@ -3892,6 +4247,7 @@
3892
4247
 
3893
4248
  // Handle timeout
3894
4249
  request.ontimeout = function handleTimeout() {
4250
+ if (!request) return;
3895
4251
  var timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';
3896
4252
  var transitional = _config.transitional || transitionalDefaults;
3897
4253
  if (_config.timeoutErrorMessage) {
@@ -3907,13 +4263,6 @@
3907
4263
  // Remove Content-Type if data is undefined
3908
4264
  requestData === undefined && requestHeaders.setContentType(null);
3909
4265
 
3910
- // Add headers to the request
3911
- if ('setRequestHeader' in request) {
3912
- utils$1.forEach(toByteStringHeaderObject(requestHeaders), function setRequestHeader(val, key) {
3913
- request.setRequestHeader(key, val);
3914
- });
3915
- }
3916
-
3917
4266
  // Add withCredentials to request if needed
3918
4267
  if (!utils$1.isUndefined(_config.withCredentials)) {
3919
4268
  request.withCredentials = !!_config.withCredentials;
@@ -3951,24 +4300,81 @@
3951
4300
  return;
3952
4301
  }
3953
4302
  reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);
3954
- request.abort();
4303
+ var xhr = request;
3955
4304
  done();
3956
4305
  request = null;
4306
+ xhr.abort();
3957
4307
  };
3958
4308
  _config.cancelToken && _config.cancelToken.subscribe(onCanceled);
4309
+ if (!request) return;
3959
4310
  if (_config.signal) {
3960
4311
  _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);
3961
4312
  }
3962
4313
  }
4314
+ if (!request) return;
3963
4315
  var protocol = parseProtocol(_config.url);
3964
4316
  if (protocol && !platform.protocols.includes(protocol)) {
3965
4317
  reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));
3966
4318
  done();
3967
4319
  return;
3968
4320
  }
3969
-
3970
- // Send the request
3971
- request.send(requestData || null);
4321
+ var sendRequest = function sendRequest() {
4322
+ if (!request) return;
4323
+ // Apply headers after an asynchronous XSRF read so existing headers are
4324
+ // replaced through AxiosHeaders rather than appended by the native XHR.
4325
+ if ('setRequestHeader' in request) {
4326
+ utils$1.forEach(toByteStringHeaderObject(requestHeaders), function setRequestHeader(val, key) {
4327
+ request.setRequestHeader(key, val);
4328
+ });
4329
+ }
4330
+ request.send(requestData || null);
4331
+ };
4332
+ if (xsrfCookieName) {
4333
+ // Native XHR timeout starts at send(). Cover cookie preparation and the
4334
+ // subsequent request with the same budget and existing timeout handler.
4335
+ var now = typeof performance !== 'undefined' && utils$1.isFunction(performance.now) ? function () {
4336
+ return performance.now();
4337
+ } : Date.now;
4338
+ var deadline = request.timeout > 0 ? now() + Number(request.timeout) : undefined;
4339
+ var abortOnTimeout = function abortOnTimeout() {
4340
+ if (!request) return;
4341
+ var xhr = request;
4342
+ xhr.ontimeout();
4343
+ xhr.abort();
4344
+ };
4345
+ if (deadline !== undefined) {
4346
+ var _scheduleTimeout = function scheduleTimeout() {
4347
+ var remaining = deadline - now();
4348
+ if (remaining > 0) {
4349
+ // Browser timers overflow above the signed 32-bit delay limit.
4350
+ timeoutId = setTimeout(_scheduleTimeout, Math.min(remaining, 0x7fffffff));
4351
+ } else {
4352
+ abortOnTimeout();
4353
+ }
4354
+ };
4355
+ _scheduleTimeout();
4356
+ }
4357
+ cookies.readAsync(xsrfCookieName).then(function (value) {
4358
+ if (!request) return;
4359
+ // Promise callbacks may run before an overdue timer after a busy task.
4360
+ if (deadline !== undefined && now() >= deadline) {
4361
+ abortOnTimeout();
4362
+ return;
4363
+ }
4364
+ if (value) {
4365
+ var headerName = utils$1.hasOwnProp(_config, 'xsrfHeaderName') && _config.xsrfHeaderName;
4366
+ requestHeaders.set(headerName, value);
4367
+ }
4368
+ sendRequest();
4369
+ })["catch"](function (error) {
4370
+ if (!request) return;
4371
+ reject(AxiosError.from(error, null, config, request));
4372
+ done();
4373
+ request = null;
4374
+ });
4375
+ } else {
4376
+ sendRequest();
4377
+ }
3972
4378
  });
3973
4379
  };
3974
4380
 
@@ -3998,7 +4404,8 @@
3998
4404
  timer && clearTimeout(timer);
3999
4405
  timer = null;
4000
4406
  signals.forEach(function (signal) {
4001
- signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort);
4407
+ var unsubscribeSignal = utils$1.getSafeProp(signal, 'unsubscribe');
4408
+ utils$1.isFunction(unsubscribeSignal) ? unsubscribeSignal.call(signal, onabort) : signal.removeEventListener('abort', onabort);
4002
4409
  });
4003
4410
  signals = null;
4004
4411
  };
@@ -4224,11 +4631,151 @@
4224
4631
  });
4225
4632
  };
4226
4633
 
4634
+ var CRLF = '\r\n';
4635
+ var normalizeLines = function normalizeLines(value) {
4636
+ return String(value).replace(/\r\n|\r|\n/g, CRLF);
4637
+ };
4638
+ var escapeName = function escapeName(value) {
4639
+ return String(value).replace(/[\r\n"]/g, function (_char) {
4640
+ return _char === '\r' ? '%0D' : _char === '\n' ? '%0A' : '%22';
4641
+ });
4642
+ };
4643
+
4644
+ // Count UTF-8 bytes without allocating an encoded copy of a field. FormData
4645
+ // string values normalize line endings; Blob/File contents remain unchanged.
4646
+ var stringBytes = function stringBytes(value, normalize) {
4647
+ var length = 0;
4648
+ for (var i = 0; i < value.length; i++) {
4649
+ var code = value.charCodeAt(i);
4650
+ if (normalize && (code === 13 || code === 10)) {
4651
+ if (code === 13 && value.charCodeAt(i + 1) === 10) i++;
4652
+ length += 2;
4653
+ } else if (code < 0x80) {
4654
+ length++;
4655
+ } else if (code < 0x800) {
4656
+ length += 2;
4657
+ } else if (code >= 0xd800 && code <= 0xdbff && value.charCodeAt(i + 1) >= 0xdc00 && value.charCodeAt(i + 1) <= 0xdfff) {
4658
+ length += 4;
4659
+ i++;
4660
+ } else {
4661
+ length += 3;
4662
+ }
4663
+ }
4664
+ return length;
4665
+ };
4666
+
4667
+ // Describe serialization failures independently of any request library.
4668
+ var FormDataError = /*#__PURE__*/function (_TypeError) {
4669
+ function FormDataError(message, reason) {
4670
+ var _this;
4671
+ _classCallCheck(this, FormDataError);
4672
+ _this = _callSuper(this, FormDataError, [message]);
4673
+ _this.name = 'FormDataError';
4674
+ _this.reason = reason;
4675
+ return _this;
4676
+ }
4677
+ _inherits(FormDataError, _TypeError);
4678
+ return _createClass(FormDataError);
4679
+ }(/*#__PURE__*/_wrapNativeSuper(TypeError));
4680
+
4681
+ // The caller supplies the boundary, Blob implementation, and limit error.
4682
+ function formDataToBlob(form, Blob, limit, limitError, boundary) {
4683
+ if (!utils$1.isFunction(Blob)) {
4684
+ throw new FormDataError('Blob is not supported', 'blob');
4685
+ }
4686
+ if (!utils$1.isString(boundary) || !/^[A-Za-z0-9'()+_,./:=? -]{1,70}$/.test(boundary) || / $/.test(boundary)) {
4687
+ throw new FormDataError('Invalid multipart boundary', 'boundary');
4688
+ }
4689
+ var footer = '--' + boundary + '--' + CRLF;
4690
+ var length = footer.length;
4691
+ var parts = [];
4692
+ var checkLength = function checkLength(extra) {
4693
+ if (length + extra > limit) throw limitError();
4694
+ };
4695
+ checkLength(0);
4696
+ var _iterator = _createForOfIteratorHelper(form),
4697
+ _step;
4698
+ try {
4699
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
4700
+ var _step$value = _slicedToArray(_step.value, 2),
4701
+ name = _step$value[0],
4702
+ value = _step$value[1];
4703
+ var isString = utils$1.isString(value);
4704
+ var valueLength = isString ? stringBytes(value, true) : value.size;
4705
+ if (!Number.isFinite(valueLength) || valueLength < 0) {
4706
+ throw new FormDataError('Unsupported FormData part size', 'part');
4707
+ }
4708
+ // Reject large values and names before building normalized header strings.
4709
+ checkLength(valueLength + stringBytes(name, true) + (!isString && value.name ? stringBytes(value.name, false) : 0) + (!isString && value.type ? stringBytes(value.type, false) : 0));
4710
+ var header = '--' + boundary + CRLF + 'Content-Disposition: form-data; name="' + escapeName(normalizeLines(name)) + '"';
4711
+ if (!isString) {
4712
+ header += '; filename="' + escapeName(utils$1.isString(value.name) ? value.name : 'blob') + '"' + CRLF + 'Content-Type: ' + String(value.type || 'application/octet-stream').replace(/[\r\n]/g, '');
4713
+ }
4714
+ header += CRLF + CRLF;
4715
+ var partLength = stringBytes(header, false) + valueLength + CRLF.length;
4716
+ checkLength(partLength);
4717
+ length += partLength;
4718
+ parts.push({
4719
+ header: header,
4720
+ value: value,
4721
+ isString: isString
4722
+ });
4723
+ }
4724
+
4725
+ // Native Blob composition retains existing Blob/File data. No file is read
4726
+ // and no complete multipart ArrayBuffer is created to determine its length.
4727
+ } catch (err) {
4728
+ _iterator.e(err);
4729
+ } finally {
4730
+ _iterator.f();
4731
+ }
4732
+ var blobParts = [];
4733
+ for (var _i = 0, _parts = parts; _i < _parts.length; _i++) {
4734
+ var part = _parts[_i];
4735
+ blobParts.push(part.header, part.isString ? normalizeLines(part.value) : part.value, CRLF);
4736
+ }
4737
+ blobParts.push(footer);
4738
+ return new Blob(blobParts, {
4739
+ type: 'multipart/form-data; boundary=' + boundary
4740
+ });
4741
+ }
4742
+
4743
+ function createMultipartBody(form, Blob, limit, limitError, boundary) {
4744
+ // Report missing Blob support before trying to select a random source.
4745
+ if (!utils$1.isFunction(Blob)) {
4746
+ throw new AxiosError('Blob is not supported', AxiosError.ERR_NOT_SUPPORT);
4747
+ }
4748
+ if (boundary === undefined) {
4749
+ if (utils$1.isFunction(platform.generateString)) {
4750
+ boundary = 'axios-' + platform.generateString(36, '0123456789abcdef');
4751
+ } else {
4752
+ var crypto = utils$1.global.crypto;
4753
+ if (!crypto || !utils$1.isFunction(crypto.getRandomValues)) {
4754
+ throw new AxiosError('Random byte generation is not supported', AxiosError.ERR_NOT_SUPPORT);
4755
+ }
4756
+ var random = new Uint8Array(18);
4757
+ crypto.getRandomValues(random);
4758
+ boundary = 'axios-' + Array.from(random, function (value) {
4759
+ return ('0' + value.toString(16)).slice(-2);
4760
+ }).join('');
4761
+ }
4762
+ }
4763
+ try {
4764
+ return formDataToBlob(form, Blob, limit, limitError, boundary);
4765
+ } catch (error) {
4766
+ if (error instanceof FormDataError) {
4767
+ var code = error.reason === 'boundary' ? AxiosError.ERR_BAD_OPTION_VALUE : AxiosError.ERR_BAD_REQUEST;
4768
+ throw new AxiosError(error.message, code);
4769
+ }
4770
+ throw error;
4771
+ }
4772
+ }
4773
+
4227
4774
  /**
4228
4775
  * Estimate data: URL byte lengths *without* allocating large buffers.
4229
4776
  * - Fetch percent-decodes a base64 body before decoding it.
4230
4777
  * - Node's Buffer.from(body, 'base64') sizes its backing allocation from the
4231
- * raw body, including ignored characters and content after padding.
4778
+ * percent-decoded body, including ignored characters and content after padding.
4232
4779
  * - Non-base64 data is percent-decoded and then encoded as UTF-8.
4233
4780
  */
4234
4781
  var isHexDigit = function isHexDigit(charCode) {
@@ -4310,14 +4857,14 @@
4310
4857
  }
4311
4858
  return base64Bytes(significant);
4312
4859
  };
4313
- var estimateDataURLBytes = function estimateDataURLBytes(url, estimateBase64) {
4860
+ var estimateDataURLBytes = function estimateDataURLBytes(url, estimateBase64, base64Pattern) {
4314
4861
  if (!url || typeof url !== 'string') return 0;
4315
- if (!url.startsWith('data:')) return 0;
4862
+ if (!/^data:/i.test(url)) return 0;
4316
4863
  var comma = url.indexOf(',');
4317
4864
  if (comma < 0) return 0;
4318
4865
  var meta = url.slice(5, comma);
4319
4866
  var body = url.slice(comma + 1);
4320
- var isBase64 = /;base64/i.test(meta);
4867
+ var isBase64 = base64Pattern.test(meta);
4321
4868
  if (isBase64) {
4322
4869
  return estimateBase64(body);
4323
4870
  }
@@ -4360,10 +4907,10 @@
4360
4907
  function estimateDataURLDecodedBytes(url) {
4361
4908
  // Fetch removes URL fragments before processing a data: URL.
4362
4909
  var fragmentIndex = typeof url === 'string' ? url.indexOf('#') : -1;
4363
- return estimateDataURLBytes(fragmentIndex === -1 ? url : url.slice(0, fragmentIndex), estimatePercentDecodedBase64Bytes);
4910
+ return estimateDataURLBytes(fragmentIndex === -1 ? url : url.slice(0, fragmentIndex), estimatePercentDecodedBase64Bytes, /; *base64[\t\n\f\r ]*$/i);
4364
4911
  }
4365
4912
 
4366
- var VERSION = "1.20.0";
4913
+ var VERSION = "1.21.0";
4367
4914
 
4368
4915
  var DEFAULT_CHUNK_SIZE = 64 * 1024;
4369
4916
  var DEFAULT_REQUEST_OPTIONS = {
@@ -4433,12 +4980,14 @@
4433
4980
  skipUndefined: true
4434
4981
  }, {
4435
4982
  Request: globalObject.Request,
4436
- Response: globalObject.Response
4983
+ Response: globalObject.Response,
4984
+ Blob: globalObject.Blob
4437
4985
  }, env);
4986
+ var envFetch = utils$1.hasOwnProp(env, 'fetch') ? env.fetch : undefined;
4438
4987
  var _env = env,
4439
- envFetch = _env.fetch,
4440
4988
  Request = _env.Request,
4441
- Response = _env.Response;
4989
+ Response = _env.Response,
4990
+ Blob = _env.Blob;
4442
4991
  var isFetchSupported = envFetch ? isFunction(envFetch) : typeof fetch === 'function';
4443
4992
  var isRequestSupported = isFunction(Request);
4444
4993
  var isResponseSupported = isFunction(Response);
@@ -4488,6 +5037,23 @@
4488
5037
  var supportsResponseStream = isResponseSupported && isReadableStreamSupported && test(function () {
4489
5038
  return utils$1.isReadableStream(new Response('').body);
4490
5039
  });
5040
+
5041
+ // Some runtimes reject every explicit cache mode. Use own defaults for both
5042
+ // probes so unrelated polluted options cannot affect cache-mode detection.
5043
+ var requestDefaults = Object.assign(Object.create(null), DEFAULT_REQUEST_OPTIONS);
5044
+ if (isRequestSupported && !test(function () {
5045
+ return new Request(platform.origin, requestDefaults);
5046
+ })) {
5047
+ delete requestDefaults.cache;
5048
+
5049
+ // Only omit cache when that makes Request construction succeed. Otherwise
5050
+ // retain the explicit default that protects supporting runtimes from pollution.
5051
+ if (!test(function () {
5052
+ return new Request(platform.origin, requestDefaults);
5053
+ })) {
5054
+ requestDefaults.cache = DEFAULT_REQUEST_OPTIONS.cache;
5055
+ }
5056
+ }
4491
5057
  var resolvers = {
4492
5058
  stream: supportsResponseStream && function (res) {
4493
5059
  return res.body;
@@ -4506,7 +5072,6 @@
4506
5072
  }();
4507
5073
  var getBodyLength = /*#__PURE__*/function () {
4508
5074
  var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(body) {
4509
- var _request;
4510
5075
  return _regenerator().w(function (_context2) {
4511
5076
  while (1) switch (_context2.n) {
4512
5077
  case 0:
@@ -4522,37 +5087,24 @@
4522
5087
  }
4523
5088
  return _context2.a(2, body.size);
4524
5089
  case 2:
4525
- if (!utils$1.isSpecCompliantForm(body)) {
4526
- _context2.n = 4;
4527
- break;
4528
- }
4529
- _request = new Request(platform.origin, {
4530
- method: 'POST',
4531
- body: body
4532
- });
4533
- _context2.n = 3;
4534
- return _request.arrayBuffer();
4535
- case 3:
4536
- return _context2.a(2, _context2.v.byteLength);
4537
- case 4:
4538
5090
  if (!(utils$1.isArrayBufferView(body) || utils$1.isArrayBuffer(body))) {
4539
- _context2.n = 5;
5091
+ _context2.n = 3;
4540
5092
  break;
4541
5093
  }
4542
5094
  return _context2.a(2, body.byteLength);
4543
- case 5:
5095
+ case 3:
4544
5096
  if (utils$1.isURLSearchParams(body)) {
4545
5097
  body = body + '';
4546
5098
  }
4547
5099
  if (!utils$1.isString(body)) {
4548
- _context2.n = 7;
5100
+ _context2.n = 5;
4549
5101
  break;
4550
5102
  }
4551
- _context2.n = 6;
5103
+ _context2.n = 4;
4552
5104
  return encodeText(body);
4553
- case 6:
5105
+ case 4:
4554
5106
  return _context2.a(2, _context2.v.byteLength);
4555
- case 7:
5107
+ case 5:
4556
5108
  return _context2.a(2);
4557
5109
  }
4558
5110
  }, _callee2);
@@ -4578,7 +5130,7 @@
4578
5130
  }();
4579
5131
  return /*#__PURE__*/function () {
4580
5132
  var _ref4 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee4(config) {
4581
- var _resolveConfig, url, method, data, signal, cancelToken, timeout, onDownloadProgress, onUploadProgress, responseType, headers, _resolveConfig$withCr, withCredentials, fetchOptions, maxContentLength, maxBodyLength, maxRedirects, hasMaxContentLength, hasMaxBodyLength, own, _fetch, composedSignal, request, unsubscribe, requestContentLength, pendingBodyError, maxBodyLengthError, auth, configAuth, username, password, parsedURL, urlUsername, urlPassword, estimated, outboundLength, mustEnforceStreamBody, trackRequestStream, _request, contentTypeHeader, _ref5, _ref6, onProgress, flush, isCredentialsSupported, contentType, safeFetchOptions, resolvedOptions, response, responseHeaders, declaredLength, isStreamResponse, options, responseContentLength, _ref7, _ref8, _onProgress, _flush, bytesRead, onChunkProgress, responseData, materializedSize, canceledError, networkError, _t3, _t4;
5133
+ var _resolveConfig, url, method, data, signal, cancelToken, timeout, onDownloadProgress, onUploadProgress, responseType, headers, _resolveConfig$withCr, withCredentials, fetchOptions, maxContentLength, maxBodyLength, maxRedirects, hasMaxContentLength, hasMaxBodyLength, own, _fetch, composedSignal, request, unsubscribe, requestContentLength, pendingBodyError, pendingResponseError, maxBodyLengthError, auth, configAuth, username, password, parsedURL, urlUsername, urlPassword, estimated, formContentType, formBoundary, parameters, outboundLength, mustEnforceStreamBody, trackRequestStream, _request, contentTypeHeader, _ref5, _ref6, onProgress, flush, isCredentialsSupported, contentType, safeFetchOptions, resolvedOptions, response, responseHeaders, declaredLength, isStreamResponse, options, responseContentLength, _ref7, _ref8, _onProgress, _flush, bytesRead, onChunkProgress, responseData, materializedSize, canceledError, networkError, _t3, _t4;
4582
5134
  return _regenerator().w(function (_context4) {
4583
5135
  while (1) switch (_context4.p = _context4.n) {
4584
5136
  case 0:
@@ -4595,11 +5147,12 @@
4595
5147
  unsubscribe = composedSignal && composedSignal.unsubscribe && function () {
4596
5148
  composedSignal.unsubscribe();
4597
5149
  };
4598
- // AxiosError we raise while the request body is being streamed. Captured
5150
+ // AxiosErrors we raise while request or response bodies are being streamed. Captured
4599
5151
  // by identity so the catch block can surface it directly, regardless of
4600
5152
  // how the runtime wraps the resulting fetch rejection (undici exposes it
4601
5153
  // as `err.cause`; some browsers drop the original error entirely).
4602
5154
  pendingBodyError = null;
5155
+ pendingResponseError = null;
4603
5156
  maxBodyLengthError = function maxBodyLengthError() {
4604
5157
  return new AxiosError('Request body larger than maxBodyLength limit', AxiosError.ERR_BAD_REQUEST, config, request);
4605
5158
  };
@@ -4639,17 +5192,35 @@
4639
5192
  // Enforce maxContentLength for data: URLs up-front so we never materialize
4640
5193
  // an oversized payload. The HTTP adapter applies the same check (see http.js
4641
5194
  // "if (protocol === 'data:')" branch).
4642
- if (!(hasMaxContentLength && typeof url === 'string' && url.startsWith('data:'))) {
5195
+ if (!(hasMaxContentLength && parsedURL && parsedURL.protocol === 'data:')) {
4643
5196
  _context4.n = 2;
4644
5197
  break;
4645
5198
  }
4646
- estimated = estimateDataURLDecodedBytes(url);
5199
+ estimated = estimateDataURLDecodedBytes(parsedURL.href);
4647
5200
  if (!(estimated > maxContentLength)) {
4648
5201
  _context4.n = 2;
4649
5202
  break;
4650
5203
  }
4651
5204
  throw new AxiosError('maxContentLength size of ' + maxContentLength + ' exceeded', AxiosError.ERR_BAD_RESPONSE, config, request);
4652
5205
  case 2:
5206
+ formContentType = utils$1.isSpecCompliantForm(data) && AxiosHeaders.from(own('headers')).getContentType();
5207
+ if (utils$1.isString(formContentType) && /^multipart\/form-data(?:\s*;|$)/i.test(formContentType.trim())) {
5208
+ parameters = AxiosHeaders.parseParameters(formContentType);
5209
+ if (utils$1.hasOwnProp(parameters, 'boundary')) formBoundary = parameters.boundary;
5210
+ }
5211
+ if (utils$1.isSpecCompliantForm(data) && method !== 'get' && method !== 'head' && (hasMaxBodyLength || onUploadProgress && supportsRequestStream || formBoundary !== undefined)) {
5212
+ data = createMultipartBody(data, Blob, hasMaxBodyLength ? maxBodyLength : Infinity, maxBodyLengthError, formBoundary);
5213
+ // Blob.type lowercases its value, including a case-sensitive boundary.
5214
+ // Retain the caller's header when an explicit boundary was serialized.
5215
+ headers.setContentType(formBoundary === undefined ? data.type : formContentType);
5216
+ requestContentLength = data.size;
5217
+ }
5218
+
5219
+ // Enforce maxBodyLength against known-size bodies before dispatch using
5220
+ // the body's *actual* size — never a caller-declared Content-Length,
5221
+ // which could under-report to slip an oversized body past the check.
5222
+ // Unknown-size streams return undefined here and are counted per-chunk
5223
+ // below as fetch consumes them.
4653
5224
  if (!(hasMaxBodyLength && method !== 'get' && method !== 'head')) {
4654
5225
  _context4.n = 4;
4655
5226
  break;
@@ -4768,7 +5339,7 @@
4768
5339
  credentials: isCredentialsSupported ? withCredentials : undefined
4769
5340
  });
4770
5341
  if (isRequestSupported) {
4771
- utils$1.forEach(DEFAULT_REQUEST_OPTIONS, function (value, key) {
5342
+ utils$1.forEach(requestDefaults, function (value, key) {
4772
5343
  if (resolvedOptions[key] === undefined) {
4773
5344
  resolvedOptions[key] = value;
4774
5345
  }
@@ -4817,7 +5388,7 @@
4817
5388
  if (hasMaxContentLength) {
4818
5389
  bytesRead = loadedBytes;
4819
5390
  if (bytesRead > maxContentLength) {
4820
- throw new AxiosError('maxContentLength size of ' + maxContentLength + ' exceeded', AxiosError.ERR_BAD_RESPONSE, config, request);
5391
+ throw pendingResponseError = new AxiosError('maxContentLength size of ' + maxContentLength + ' exceeded', AxiosError.ERR_BAD_RESPONSE, config, request);
4821
5392
  }
4822
5393
  }
4823
5394
  _onProgress && _onProgress(loadedBytes);
@@ -4900,15 +5471,21 @@
4900
5471
  request && !pendingBodyError.request && (pendingBodyError.request = request);
4901
5472
  throw pendingBodyError;
4902
5473
  case 18:
4903
- if (!(_t4 instanceof AxiosError)) {
5474
+ if (!pendingResponseError) {
4904
5475
  _context4.n = 19;
4905
5476
  break;
4906
5477
  }
5478
+ throw pendingResponseError;
5479
+ case 19:
5480
+ if (!(_t4 instanceof AxiosError)) {
5481
+ _context4.n = 20;
5482
+ break;
5483
+ }
4907
5484
  request && !_t4.request && (_t4.request = request);
4908
5485
  throw _t4;
4909
- case 19:
5486
+ case 20:
4910
5487
  if (!(_t4 && _t4.name === 'TypeError' && /Load failed|fetch/i.test(_t4.message))) {
4911
- _context4.n = 20;
5488
+ _context4.n = 21;
4912
5489
  break;
4913
5490
  }
4914
5491
  networkError = new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request, _t4 && _t4.response); // Non-enumerable to match native Error `cause` semantics so loggers
@@ -4921,9 +5498,9 @@
4921
5498
  configurable: true
4922
5499
  });
4923
5500
  throw networkError;
4924
- case 20:
4925
- throw AxiosError.from(_t4, _t4 && _t4.code, config, request, _t4 && _t4.response);
4926
5501
  case 21:
5502
+ throw AxiosError.from(_t4, _t4 && _t4.code, config, request, _t4 && _t4.response);
5503
+ case 22:
4927
5504
  return _context4.a(2);
4928
5505
  }
4929
5506
  }, _callee4, null, [[1, 16]]);
@@ -4935,11 +5512,18 @@
4935
5512
  };
4936
5513
  var seedCache = new Map();
4937
5514
  var getFetch = function getFetch(config) {
4938
- var env = config && config.env || {};
5515
+ var env = Object.create(null);
5516
+ var configuredEnv = config && utils$1.hasOwnProp(config, 'env') && config.env;
5517
+ ['fetch', 'Request', 'Response', 'Blob'].forEach(function (key) {
5518
+ if (configuredEnv && utils$1.hasOwnProp(configuredEnv, key)) {
5519
+ env[key] = configuredEnv[key];
5520
+ }
5521
+ });
4939
5522
  var fetch = env.fetch,
4940
5523
  Request = env.Request,
4941
- Response = env.Response;
4942
- var seeds = [Request, Response, fetch];
5524
+ Response = env.Response,
5525
+ Blob = env.Blob;
5526
+ var seeds = [Request, Response, fetch, Blob];
4943
5527
  var len = seeds.length,
4944
5528
  i = len,
4945
5529
  seed,
@@ -5089,6 +5673,21 @@
5089
5673
  }
5090
5674
  }
5091
5675
 
5676
+ /**
5677
+ * Milliseconds elapsed since `start`, floored at zero.
5678
+ *
5679
+ * Wall-clock, to match the rest of the codebase (speedometer, throttle,
5680
+ * AxiosTransformStream). A backwards clock adjustment mid-request would
5681
+ * otherwise produce a negative duration, so the result is clamped.
5682
+ *
5683
+ * @param {number} start Timestamp from `Date.now()`
5684
+ *
5685
+ * @returns {number} Non-negative elapsed milliseconds
5686
+ */
5687
+ function elapsedSince(start) {
5688
+ return Math.max(0, Date.now() - start);
5689
+ }
5690
+
5092
5691
  /**
5093
5692
  * Dispatch a request to the server using the configured adapter.
5094
5693
  *
@@ -5110,8 +5709,10 @@
5110
5709
  config.headers.setContentType('application/x-www-form-urlencoded', false);
5111
5710
  }
5112
5711
  var adapter = adapters.getAdapter(config.adapter || defaults.adapter, config);
5712
+ var start = Date.now();
5113
5713
  return adapter(config).then(function onAdapterResolution(response) {
5114
5714
  throwIfCancellationRequested(config);
5715
+ response.duration = elapsedSince(start);
5115
5716
 
5116
5717
  // Expose the current response on config so that transformResponse can
5117
5718
  // attach it to any AxiosError it throws (e.g. on JSON parse failure).
@@ -5130,6 +5731,7 @@
5130
5731
 
5131
5732
  // Transform response data
5132
5733
  if (reason && reason.response) {
5734
+ reason.response.duration = elapsedSince(start);
5133
5735
  config.response = reason.response;
5134
5736
  try {
5135
5737
  reason.response.data = transformData.call(config, config.transformResponse, reason.response);
@@ -5229,6 +5831,23 @@
5229
5831
 
5230
5832
  var validators = validator.validators;
5231
5833
 
5834
+ // Recognize header maps without consuming objects intended as literal values.
5835
+ // AxiosHeaders from other builds share a brand and header-container interface,
5836
+ // but not constructor identity. A tag and toJSON alone can describe a literal.
5837
+ var isHeadersBucket = function isHeadersBucket(value) {
5838
+ if (value == null || utils$1.isPlainObject(value) || value instanceof AxiosHeaders) {
5839
+ return true;
5840
+ }
5841
+ try {
5842
+ return utils$1.isObject(value) && utils$1.getSafeProp(value, Symbol.toStringTag) === 'AxiosHeaders' && ['toJSON', 'set', 'get', 'has', 'delete', 'clear', 'normalize', 'concat', 'toString', Symbol.iterator].every(function (method) {
5843
+ return utils$1.isFunction(utils$1.getSafeProp(value, method));
5844
+ });
5845
+ } catch (e) {
5846
+ // A failed optional brand probe must not prevent literal header serialization.
5847
+ return false;
5848
+ }
5849
+ };
5850
+
5232
5851
  /**
5233
5852
  * Create a new instance of Axios
5234
5853
  *
@@ -5258,7 +5877,7 @@
5258
5877
  key: "request",
5259
5878
  value: (function () {
5260
5879
  var _request2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(configOrUrl, config) {
5261
- var dummy, dummyStack, stack, firstNewlineIndex, _firstNewlineIndex, secondNewlineIndex, stackWithoutTwoTopLines, _t;
5880
+ var dummy, dummyStack, stack, firstNewlineIndex, _firstNewlineIndex, secondNewlineIndex, duplicateCheckSuffix, currentStack, causeIndex, stackHead, causeSection, _t;
5262
5881
  return _regenerator().w(function (_context) {
5263
5882
  while (1) switch (_context.p = _context.n) {
5264
5883
  case 0:
@@ -5282,13 +5901,21 @@
5282
5901
  }
5283
5902
  if (!_t.stack) {
5284
5903
  _t.stack = stack;
5285
- // match without the 2 top stack lines
5286
5904
  } else if (stack) {
5905
+ // Match a common suffix after the 2 top frames when available,
5906
+ // otherwise compare the full reconstructed stack.
5287
5907
  _firstNewlineIndex = stack.indexOf('\n');
5288
5908
  secondNewlineIndex = _firstNewlineIndex === -1 ? -1 : stack.indexOf('\n', _firstNewlineIndex + 1);
5289
- stackWithoutTwoTopLines = secondNewlineIndex === -1 ? '' : stack.slice(secondNewlineIndex + 1);
5290
- if (!String(_t.stack).endsWith(stackWithoutTwoTopLines)) {
5291
- _t.stack += '\n' + stack;
5909
+ duplicateCheckSuffix = secondNewlineIndex === -1 ? stack : stack.slice(secondNewlineIndex + 1); // `AxiosError.from()` may have already inlined the wrapped error's
5910
+ // stack under a `Caused by:` marker. Keep the reconstructed caller
5911
+ // frames ahead of that marker so stack-only reporters do not read
5912
+ // them as part of the low-level cause.
5913
+ currentStack = String(_t.stack);
5914
+ causeIndex = getCauseStackIndex(_t, currentStack);
5915
+ stackHead = causeIndex === -1 ? currentStack : currentStack.slice(0, causeIndex);
5916
+ causeSection = causeIndex === -1 ? '' : currentStack.slice(causeIndex);
5917
+ if (!stackHead.endsWith(duplicateCheckSuffix)) {
5918
+ _t.stack = stackHead + '\n' + stack + causeSection;
5292
5919
  }
5293
5920
  }
5294
5921
  } catch (e) {
@@ -5330,7 +5957,8 @@
5330
5957
  clarifyTimeoutError: validators.transitional(validators["boolean"]),
5331
5958
  legacyInterceptorReqResOrdering: validators.transitional(validators["boolean"]),
5332
5959
  advertiseZstdAcceptEncoding: validators.transitional(validators["boolean"]),
5333
- validateStatusUndefinedResolves: validators.transitional(validators["boolean"])
5960
+ validateStatusUndefinedResolves: validators.transitional(validators["boolean"]),
5961
+ encodeBasicAuthUsername: validators.transitional(validators["boolean"])
5334
5962
  }, false);
5335
5963
  }
5336
5964
  if (paramsSerializer != null) {
@@ -5347,7 +5975,7 @@
5347
5975
  }
5348
5976
 
5349
5977
  // Set config.allowAbsoluteUrls
5350
- if (config.allowAbsoluteUrls !== undefined) ; else if (this.defaults.allowAbsoluteUrls !== undefined) {
5978
+ if (config.allowAbsoluteUrls !== undefined) ; else if (utils$1.hasOwnProp(this.defaults, 'allowAbsoluteUrls') && this.defaults.allowAbsoluteUrls !== undefined) {
5351
5979
  config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;
5352
5980
  } else {
5353
5981
  config.allowAbsoluteUrls = true;
@@ -5360,10 +5988,14 @@
5360
5988
  // Set config.method
5361
5989
  config.method = (utils$1.getSafeProp(config, 'method') || utils$1.getSafeProp(this.defaults, 'method') || 'get').toLowerCase();
5362
5990
 
5363
- // Flatten headers
5364
- var contextHeaders = headers && utils$1.merge(headers.common, headers[config.method]);
5991
+ // Flatten header defaults without consuming literal method-named headers.
5992
+ var commonHeaders = utils$1.getSafeProp(headers, 'common');
5993
+ var methodHeaders = utils$1.getSafeProp(headers, config.method);
5994
+ var contextHeaders = headers && utils$1.merge(isHeadersBucket(commonHeaders) ? commonHeaders : undefined, isHeadersBucket(methodHeaders) ? methodHeaders : undefined);
5365
5995
  headers && utils$1.forEach(methodList.concat('common'), function (method) {
5366
- delete headers[method];
5996
+ if (isHeadersBucket(utils$1.getSafeProp(headers, method))) {
5997
+ delete headers[method];
5998
+ }
5367
5999
  });
5368
6000
  config.headers = AxiosHeaders.concat(contextHeaders, headers);
5369
6001
 
@@ -5451,26 +6083,47 @@
5451
6083
  }(); // Provide aliases for supported request methods
5452
6084
  utils$1.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {
5453
6085
  /*eslint func-names:0*/
5454
- Axios.prototype[method] = function (url, config) {
5455
- return this.request(mergeConfig(config || {}, {
5456
- method: method,
5457
- url: url,
5458
- data: config && utils$1.hasOwnProp(config, 'data') ? config.data : undefined
6086
+ Axios.prototype[method] = /*#__PURE__*/function () {
6087
+ var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(url, config) {
6088
+ return _regenerator().w(function (_context2) {
6089
+ while (1) switch (_context2.n) {
6090
+ case 0:
6091
+ return _context2.a(2, this.request(mergeConfig(config || {}, {
6092
+ method: method,
6093
+ url: url,
6094
+ data: config && utils$1.hasOwnProp(config, 'data') ? config.data : undefined
6095
+ })));
6096
+ }
6097
+ }, _callee2, this);
5459
6098
  }));
5460
- };
6099
+ return function (_x3, _x4) {
6100
+ return _ref.apply(this, arguments);
6101
+ };
6102
+ }();
5461
6103
  });
5462
6104
  utils$1.forEach(['post', 'put', 'patch', 'query'], function forEachMethodWithData(method) {
5463
6105
  function generateHTTPMethod(isForm) {
5464
- return function httpMethod(url, data, config) {
5465
- return this.request(mergeConfig(config || {}, {
5466
- method: method,
5467
- headers: isForm ? {
5468
- 'Content-Type': 'multipart/form-data'
5469
- } : {},
5470
- url: url,
5471
- data: data
6106
+ return /*#__PURE__*/function () {
6107
+ var _httpMethod = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3(url, data, config) {
6108
+ return _regenerator().w(function (_context3) {
6109
+ while (1) switch (_context3.n) {
6110
+ case 0:
6111
+ return _context3.a(2, this.request(mergeConfig(config || {}, {
6112
+ method: method,
6113
+ headers: isForm ? {
6114
+ 'Content-Type': 'multipart/form-data'
6115
+ } : {},
6116
+ url: url,
6117
+ data: data
6118
+ })));
6119
+ }
6120
+ }, _callee3, this);
5472
6121
  }));
5473
- };
6122
+ function httpMethod(_x5, _x6, _x7) {
6123
+ return _httpMethod.apply(this, arguments);
6124
+ }
6125
+ return httpMethod;
6126
+ }();
5474
6127
  }
5475
6128
  Axios.prototype[method] = generateHTTPMethod();
5476
6129