appium-mac2-driver 4.5.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.
- package/CHANGELOG.md +10 -0
- package/build/lib/session-claim-handler.d.ts.map +1 -1
- package/build/lib/session-claim-handler.js +1 -2
- package/build/lib/session-claim-handler.js.map +1 -1
- package/build/lib/wda-mac.d.ts +0 -1
- package/build/lib/wda-mac.d.ts.map +1 -1
- package/build/lib/wda-mac.js +1 -1
- package/lib/session-claim-handler.ts +1 -2
- package/lib/wda-mac.ts +1 -2
- package/node_modules/@appium/support/build/lib/npm.d.ts.map +1 -1
- package/node_modules/@appium/support/build/lib/npm.js +2 -1
- package/node_modules/@appium/support/build/lib/npm.js.map +1 -1
- package/node_modules/@appium/support/build/lib/util.d.ts.map +1 -1
- package/node_modules/@appium/support/build/lib/util.js +13 -1
- package/node_modules/@appium/support/build/lib/util.js.map +1 -1
- package/node_modules/@appium/support/build/lib/zip.d.ts +2 -1
- package/node_modules/@appium/support/build/lib/zip.d.ts.map +1 -1
- package/node_modules/@appium/support/build/lib/zip.js +193 -64
- package/node_modules/@appium/support/build/lib/zip.js.map +1 -1
- package/node_modules/@appium/support/lib/npm.ts +2 -1
- package/node_modules/@appium/support/lib/util.ts +13 -1
- package/node_modules/@appium/support/lib/zip.ts +231 -71
- package/node_modules/@appium/support/node_modules/axios/CHANGELOG.md +1934 -0
- package/node_modules/@appium/support/node_modules/axios/LICENSE +7 -0
- package/node_modules/@appium/support/node_modules/axios/MIGRATION_GUIDE.md +877 -0
- package/node_modules/@appium/support/node_modules/axios/README.md +2851 -0
- package/node_modules/@appium/support/node_modules/axios/dist/axios.js +5807 -0
- package/node_modules/@appium/support/node_modules/axios/dist/axios.min.js +5 -0
- package/node_modules/@appium/support/node_modules/axios/dist/axios.min.js.map +1 -0
- package/node_modules/@appium/support/node_modules/axios/dist/browser/axios.cjs +5829 -0
- package/node_modules/@appium/support/node_modules/axios/dist/esm/axios.js +5850 -0
- package/node_modules/@appium/support/node_modules/axios/dist/esm/axios.min.js +3 -0
- package/node_modules/@appium/support/node_modules/axios/dist/esm/axios.min.js.map +1 -0
- package/node_modules/@appium/support/node_modules/axios/dist/node/axios.cjs +6808 -0
- package/node_modules/@appium/support/node_modules/axios/index.d.cts +766 -0
- package/node_modules/@appium/support/node_modules/axios/index.d.ts +787 -0
- package/node_modules/@appium/support/node_modules/axios/index.js +45 -0
- package/node_modules/@appium/support/node_modules/axios/lib/adapters/README.md +36 -0
- package/node_modules/@appium/support/node_modules/axios/lib/adapters/adapters.js +132 -0
- package/node_modules/@appium/support/node_modules/axios/lib/adapters/fetch.js +696 -0
- package/node_modules/@appium/support/node_modules/axios/lib/adapters/http.js +1490 -0
- package/node_modules/@appium/support/node_modules/axios/lib/adapters/xhr.js +277 -0
- package/node_modules/@appium/support/node_modules/axios/lib/axios.js +89 -0
- package/node_modules/@appium/support/node_modules/axios/lib/cancel/CancelToken.js +135 -0
- package/node_modules/@appium/support/node_modules/axios/lib/cancel/CanceledError.js +22 -0
- package/node_modules/@appium/support/node_modules/axios/lib/cancel/isCancel.js +5 -0
- package/node_modules/@appium/support/node_modules/axios/lib/core/Axios.js +306 -0
- package/node_modules/@appium/support/node_modules/axios/lib/core/AxiosError.js +219 -0
- package/node_modules/@appium/support/node_modules/axios/lib/core/AxiosHeaders.js +474 -0
- package/node_modules/@appium/support/node_modules/axios/lib/core/InterceptorManager.js +171 -0
- package/node_modules/@appium/support/node_modules/axios/lib/core/README.md +8 -0
- package/node_modules/@appium/support/node_modules/axios/lib/core/buildFullPath.js +76 -0
- package/node_modules/@appium/support/node_modules/axios/lib/core/dispatchRequest.js +95 -0
- package/node_modules/@appium/support/node_modules/axios/lib/core/mergeConfig.js +174 -0
- package/node_modules/@appium/support/node_modules/axios/lib/core/methodList.js +17 -0
- package/node_modules/@appium/support/node_modules/axios/lib/core/setFormDataHeaders.js +27 -0
- package/node_modules/@appium/support/node_modules/axios/lib/core/settle.js +27 -0
- package/node_modules/@appium/support/node_modules/axios/lib/core/transformData.js +28 -0
- package/node_modules/@appium/support/node_modules/axios/lib/defaults/index.js +178 -0
- package/node_modules/@appium/support/node_modules/axios/lib/defaults/transitional.js +10 -0
- package/node_modules/@appium/support/node_modules/axios/lib/env/README.md +3 -0
- package/node_modules/@appium/support/node_modules/axios/lib/env/classes/FormData.js +2 -0
- package/node_modules/@appium/support/node_modules/axios/lib/env/data.js +1 -0
- package/node_modules/@appium/support/node_modules/axios/lib/helpers/AxiosTransformStream.js +156 -0
- package/node_modules/@appium/support/node_modules/axios/lib/helpers/AxiosURLSearchParams.js +59 -0
- package/node_modules/@appium/support/node_modules/axios/lib/helpers/Http2Sessions.js +121 -0
- package/node_modules/@appium/support/node_modules/axios/lib/helpers/HttpStatusCode.js +88 -0
- package/node_modules/@appium/support/node_modules/axios/lib/helpers/README.md +7 -0
- package/node_modules/@appium/support/node_modules/axios/lib/helpers/ZlibHeaderTransformStream.js +29 -0
- package/node_modules/@appium/support/node_modules/axios/lib/helpers/bind.js +14 -0
- package/node_modules/@appium/support/node_modules/axios/lib/helpers/buildURL.js +69 -0
- package/node_modules/@appium/support/node_modules/axios/lib/helpers/callbackify.js +18 -0
- package/node_modules/@appium/support/node_modules/axios/lib/helpers/combineURLs.js +23 -0
- package/node_modules/@appium/support/node_modules/axios/lib/helpers/composeSignals.js +68 -0
- package/node_modules/@appium/support/node_modules/axios/lib/helpers/cookies.js +64 -0
- package/node_modules/@appium/support/node_modules/axios/lib/helpers/deprecatedMethod.js +31 -0
- package/node_modules/@appium/support/node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js +166 -0
- package/node_modules/@appium/support/node_modules/axios/lib/helpers/formDataToJSON.js +125 -0
- package/node_modules/@appium/support/node_modules/axios/lib/helpers/formDataToStream.js +119 -0
- package/node_modules/@appium/support/node_modules/axios/lib/helpers/fromDataURI.js +69 -0
- package/node_modules/@appium/support/node_modules/axios/lib/helpers/isAbsoluteURL.js +19 -0
- package/node_modules/@appium/support/node_modules/axios/lib/helpers/isAxiosError.js +14 -0
- package/node_modules/@appium/support/node_modules/axios/lib/helpers/isURLSameOrigin.js +16 -0
- package/node_modules/@appium/support/node_modules/axios/lib/helpers/normalizeURLForProtocolCheck.js +24 -0
- package/node_modules/@appium/support/node_modules/axios/lib/helpers/null.js +2 -0
- package/node_modules/@appium/support/node_modules/axios/lib/helpers/parseHeaders.js +71 -0
- package/node_modules/@appium/support/node_modules/axios/lib/helpers/parseProtocol.js +6 -0
- package/node_modules/@appium/support/node_modules/axios/lib/helpers/progressEventReducer.js +54 -0
- package/node_modules/@appium/support/node_modules/axios/lib/helpers/readBlob.js +15 -0
- package/node_modules/@appium/support/node_modules/axios/lib/helpers/resolveConfig.js +107 -0
- package/node_modules/@appium/support/node_modules/axios/lib/helpers/sanitizeHeaderValue.js +60 -0
- package/node_modules/@appium/support/node_modules/axios/lib/helpers/shouldBypassProxy.js +505 -0
- package/node_modules/@appium/support/node_modules/axios/lib/helpers/speedometer.js +55 -0
- package/node_modules/@appium/support/node_modules/axios/lib/helpers/spread.js +28 -0
- package/node_modules/@appium/support/node_modules/axios/lib/helpers/throttle.js +45 -0
- package/node_modules/@appium/support/node_modules/axios/lib/helpers/toFormData.js +279 -0
- package/node_modules/@appium/support/node_modules/axios/lib/helpers/toURLEncodedForm.js +19 -0
- package/node_modules/@appium/support/node_modules/axios/lib/helpers/trackStream.js +89 -0
- package/node_modules/@appium/support/node_modules/axios/lib/helpers/validator.js +112 -0
- package/node_modules/@appium/support/node_modules/axios/lib/platform/browser/classes/Blob.js +3 -0
- package/node_modules/@appium/support/node_modules/axios/lib/platform/browser/classes/FormData.js +3 -0
- package/node_modules/@appium/support/node_modules/axios/lib/platform/browser/classes/URLSearchParams.js +4 -0
- package/node_modules/@appium/support/node_modules/axios/lib/platform/browser/index.js +13 -0
- package/node_modules/@appium/support/node_modules/axios/lib/platform/common/utils.js +52 -0
- package/node_modules/@appium/support/node_modules/axios/lib/platform/index.js +7 -0
- package/node_modules/@appium/support/node_modules/axios/lib/platform/node/classes/Buffer.js +11 -0
- package/node_modules/@appium/support/node_modules/axios/lib/platform/node/classes/FormData.js +3 -0
- package/node_modules/@appium/support/node_modules/axios/lib/platform/node/classes/URLSearchParams.js +4 -0
- package/node_modules/@appium/support/node_modules/axios/lib/platform/node/index.js +37 -0
- package/node_modules/@appium/support/node_modules/axios/lib/utils.js +1150 -0
- package/node_modules/@appium/support/node_modules/axios/package.json +203 -0
- package/node_modules/@appium/support/package.json +6 -6
- package/node_modules/@appium/types/build/lib/commands/basedriver.d.ts +6 -4
- package/node_modules/@appium/types/build/lib/commands/basedriver.d.ts.map +1 -1
- package/node_modules/@appium/types/lib/commands/basedriver.ts +4 -4
- package/node_modules/@appium/types/package.json +2 -2
- package/node_modules/appium-xcode/CHANGELOG.md +7 -0
- package/node_modules/appium-xcode/package.json +4 -4
- package/node_modules/asyncbox/README.md +43 -0
- package/node_modules/asyncbox/build/cjs/lib/asyncfilter.d.ts +9 -0
- package/node_modules/asyncbox/build/cjs/lib/asyncfilter.d.ts.map +1 -0
- package/node_modules/asyncbox/build/cjs/lib/asyncfilter.js +35 -0
- package/node_modules/asyncbox/build/cjs/lib/asyncfilter.js.map +1 -0
- package/node_modules/asyncbox/build/cjs/lib/asyncmap.d.ts +9 -0
- package/node_modules/asyncbox/build/cjs/lib/asyncmap.d.ts.map +1 -0
- package/node_modules/asyncbox/build/cjs/lib/asyncmap.js +23 -0
- package/node_modules/asyncbox/build/cjs/lib/asyncmap.js.map +1 -0
- package/node_modules/asyncbox/build/cjs/lib/errors.d.ts +9 -0
- package/node_modules/asyncbox/build/cjs/lib/errors.d.ts.map +1 -0
- package/node_modules/asyncbox/build/cjs/lib/errors.js +20 -0
- package/node_modules/asyncbox/build/cjs/lib/errors.js.map +1 -0
- package/node_modules/asyncbox/build/cjs/lib/index.d.ts +12 -0
- package/node_modules/asyncbox/build/cjs/lib/index.d.ts.map +1 -0
- package/node_modules/asyncbox/build/cjs/lib/index.js +24 -0
- package/node_modules/asyncbox/build/cjs/lib/index.js.map +1 -0
- package/node_modules/asyncbox/build/cjs/lib/limit-function.d.ts +3 -0
- package/node_modules/asyncbox/build/cjs/lib/limit-function.d.ts.map +1 -0
- package/node_modules/asyncbox/build/cjs/lib/limit-function.js +15 -0
- package/node_modules/asyncbox/build/cjs/lib/limit-function.js.map +1 -0
- package/node_modules/asyncbox/build/cjs/lib/lock.d.ts +74 -0
- package/node_modules/asyncbox/build/cjs/lib/lock.d.ts.map +1 -0
- package/node_modules/asyncbox/build/cjs/lib/lock.js +295 -0
- package/node_modules/asyncbox/build/cjs/lib/lock.js.map +1 -0
- package/node_modules/asyncbox/build/cjs/lib/long-sleep.d.ts +15 -0
- package/node_modules/asyncbox/build/cjs/lib/long-sleep.d.ts.map +1 -0
- package/node_modules/asyncbox/build/cjs/lib/long-sleep.js +36 -0
- package/node_modules/asyncbox/build/cjs/lib/long-sleep.js.map +1 -0
- package/node_modules/asyncbox/build/cjs/lib/retry.d.ts +17 -0
- package/node_modules/asyncbox/build/cjs/lib/retry.d.ts.map +1 -0
- package/node_modules/asyncbox/build/cjs/lib/retry.js +57 -0
- package/node_modules/asyncbox/build/cjs/lib/retry.js.map +1 -0
- package/node_modules/asyncbox/build/cjs/lib/sleep.d.ts +20 -0
- package/node_modules/asyncbox/build/cjs/lib/sleep.d.ts.map +1 -0
- package/node_modules/asyncbox/build/cjs/lib/sleep.js +61 -0
- package/node_modules/asyncbox/build/cjs/lib/sleep.js.map +1 -0
- package/node_modules/asyncbox/build/cjs/lib/wait-for-condition.d.ts +18 -0
- package/node_modules/asyncbox/build/cjs/lib/wait-for-condition.d.ts.map +1 -0
- package/node_modules/asyncbox/build/cjs/lib/wait-for-condition.js +51 -0
- package/node_modules/asyncbox/build/cjs/lib/wait-for-condition.js.map +1 -0
- package/node_modules/asyncbox/build/cjs/lib/with-timeout.d.ts +16 -0
- package/node_modules/asyncbox/build/cjs/lib/with-timeout.d.ts.map +1 -0
- package/node_modules/asyncbox/build/cjs/lib/with-timeout.js +45 -0
- package/node_modules/asyncbox/build/cjs/lib/with-timeout.js.map +1 -0
- package/node_modules/asyncbox/build/esm/lib/asyncfilter.d.ts +9 -0
- package/node_modules/asyncbox/build/esm/lib/asyncfilter.d.ts.map +1 -0
- package/node_modules/asyncbox/build/esm/lib/asyncfilter.js +32 -0
- package/node_modules/asyncbox/build/esm/lib/asyncfilter.js.map +1 -0
- package/node_modules/asyncbox/build/esm/lib/asyncmap.d.ts +9 -0
- package/node_modules/asyncbox/build/esm/lib/asyncmap.d.ts.map +1 -0
- package/node_modules/asyncbox/build/esm/lib/asyncmap.js +20 -0
- package/node_modules/asyncbox/build/esm/lib/asyncmap.js.map +1 -0
- package/node_modules/asyncbox/build/esm/lib/errors.d.ts +9 -0
- package/node_modules/asyncbox/build/esm/lib/errors.d.ts.map +1 -0
- package/node_modules/asyncbox/build/esm/lib/errors.js +15 -0
- package/node_modules/asyncbox/build/esm/lib/errors.js.map +1 -0
- package/node_modules/asyncbox/build/esm/lib/index.d.ts +12 -0
- package/node_modules/asyncbox/build/esm/lib/index.d.ts.map +1 -0
- package/node_modules/asyncbox/build/esm/lib/index.js +10 -0
- package/node_modules/asyncbox/build/esm/lib/index.js.map +1 -0
- package/node_modules/asyncbox/build/esm/lib/limit-function.d.ts +3 -0
- package/node_modules/asyncbox/build/esm/lib/limit-function.d.ts.map +1 -0
- package/node_modules/asyncbox/build/esm/lib/limit-function.js +12 -0
- package/node_modules/asyncbox/build/esm/lib/limit-function.js.map +1 -0
- package/node_modules/asyncbox/build/esm/lib/lock.d.ts +74 -0
- package/node_modules/asyncbox/build/esm/lib/lock.d.ts.map +1 -0
- package/node_modules/asyncbox/build/esm/lib/lock.js +291 -0
- package/node_modules/asyncbox/build/esm/lib/lock.js.map +1 -0
- package/node_modules/asyncbox/build/esm/lib/long-sleep.d.ts +15 -0
- package/node_modules/asyncbox/build/esm/lib/long-sleep.d.ts.map +1 -0
- package/node_modules/asyncbox/build/esm/lib/long-sleep.js +33 -0
- package/node_modules/asyncbox/build/esm/lib/long-sleep.js.map +1 -0
- package/node_modules/asyncbox/build/esm/lib/retry.d.ts +17 -0
- package/node_modules/asyncbox/build/esm/lib/retry.d.ts.map +1 -0
- package/node_modules/asyncbox/build/esm/lib/retry.js +53 -0
- package/node_modules/asyncbox/build/esm/lib/retry.js.map +1 -0
- package/node_modules/asyncbox/build/esm/lib/sleep.d.ts +20 -0
- package/node_modules/asyncbox/build/esm/lib/sleep.d.ts.map +1 -0
- package/node_modules/asyncbox/build/esm/lib/sleep.js +58 -0
- package/node_modules/asyncbox/build/esm/lib/sleep.js.map +1 -0
- package/node_modules/asyncbox/build/esm/lib/wait-for-condition.d.ts +18 -0
- package/node_modules/asyncbox/build/esm/lib/wait-for-condition.d.ts.map +1 -0
- package/node_modules/asyncbox/build/esm/lib/wait-for-condition.js +48 -0
- package/node_modules/asyncbox/build/esm/lib/wait-for-condition.js.map +1 -0
- package/node_modules/asyncbox/build/esm/lib/with-timeout.d.ts +16 -0
- package/node_modules/asyncbox/build/esm/lib/with-timeout.d.ts.map +1 -0
- package/node_modules/asyncbox/build/esm/lib/with-timeout.js +42 -0
- package/node_modules/asyncbox/build/esm/lib/with-timeout.js.map +1 -0
- package/node_modules/asyncbox/lib/asyncfilter.ts +38 -0
- package/node_modules/asyncbox/lib/asyncmap.ts +29 -0
- package/node_modules/asyncbox/lib/errors.ts +15 -0
- package/node_modules/asyncbox/lib/index.ts +21 -0
- package/node_modules/asyncbox/lib/limit-function.ts +18 -0
- package/node_modules/asyncbox/lib/lock.ts +360 -0
- package/node_modules/asyncbox/lib/long-sleep.ts +38 -0
- package/node_modules/asyncbox/lib/retry.ts +61 -0
- package/node_modules/asyncbox/lib/sleep.ts +79 -0
- package/node_modules/asyncbox/lib/wait-for-condition.ts +52 -0
- package/node_modules/asyncbox/lib/with-timeout.ts +43 -0
- package/node_modules/asyncbox/package.json +8 -8
- package/node_modules/axios/README.md +41 -106
- package/node_modules/axios/dist/axios.js +931 -278
- package/node_modules/axios/dist/axios.min.js +2 -2
- package/node_modules/axios/dist/axios.min.js.map +1 -1
- package/node_modules/axios/dist/browser/axios.cjs +948 -268
- package/node_modules/axios/dist/esm/axios.js +948 -268
- package/node_modules/axios/dist/esm/axios.min.js +2 -2
- package/node_modules/axios/dist/esm/axios.min.js.map +1 -1
- package/node_modules/axios/dist/node/axios.cjs +925 -242
- package/node_modules/axios/index.d.cts +20 -1
- package/node_modules/axios/index.d.ts +18 -1
- package/node_modules/axios/lib/adapters/fetch.js +73 -20
- package/node_modules/axios/lib/adapters/http.js +145 -26
- package/node_modules/axios/lib/adapters/xhr.js +120 -13
- package/node_modules/axios/lib/core/Axios.js +67 -12
- package/node_modules/axios/lib/core/AxiosError.js +59 -0
- package/node_modules/axios/lib/core/AxiosHeaders.js +17 -4
- package/node_modules/axios/lib/core/InterceptorManager.js +13 -2
- package/node_modules/axios/lib/core/assertParamsAcyclic.js +49 -0
- package/node_modules/axios/lib/core/createMultipartBody.js +37 -0
- package/node_modules/axios/lib/core/dispatchRequest.js +20 -0
- package/node_modules/axios/lib/core/mergeConfig.js +183 -120
- package/node_modules/axios/lib/defaults/transitional.js +1 -0
- package/node_modules/axios/lib/env/data.js +1 -1
- package/node_modules/axios/lib/helpers/AxiosTransformStream.js +11 -2
- package/node_modules/axios/lib/helpers/Http2Sessions.js +2 -1
- package/node_modules/axios/lib/helpers/composeSignals.js +6 -3
- package/node_modules/axios/lib/helpers/cookies.js +30 -6
- package/node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js +34 -7
- package/node_modules/axios/lib/helpers/formDataToBlob.js +113 -0
- package/node_modules/axios/lib/helpers/formDataToJSON.js +25 -1
- package/node_modules/axios/lib/helpers/fromDataURI.js +8 -2
- package/node_modules/axios/lib/helpers/isURLSameOrigin.js +4 -9
- package/node_modules/axios/lib/helpers/parseHeaders.js +2 -1
- package/node_modules/axios/lib/helpers/parseProtocol.js +1 -1
- package/node_modules/axios/lib/helpers/resolveConfig.js +16 -3
- package/node_modules/axios/lib/helpers/shouldBypassProxy.js +16 -1
- package/node_modules/axios/lib/utils.js +61 -10
- package/node_modules/axios/package.json +1 -2
- package/node_modules/follow-redirects/README.md +27 -1
- package/node_modules/follow-redirects/index.js +1 -5
- package/node_modules/follow-redirects/package.json +1 -1
- package/node_modules/shell-quote/README.md +37 -4
- package/node_modules/shell-quote/package.json +10 -6
- package/node_modules/shell-quote/parse.d.ts +1 -1
- package/node_modules/shell-quote/parse.js +63 -11
- package/node_modules/shell-quote/quote.d.ts +2 -1
- package/node_modules/shell-quote/quote.js +23 -3
- package/node_modules/uuid/package.json +17 -17
- package/package.json +4 -6
- package/node_modules/async-lock/AUTHORS +0 -21
- package/node_modules/async-lock/History.md +0 -132
- package/node_modules/async-lock/LICENSE +0 -22
- package/node_modules/async-lock/README.md +0 -177
- package/node_modules/async-lock/index.js +0 -2
- package/node_modules/async-lock/lib/index.js +0 -312
- package/node_modules/async-lock/package.json +0 -48
- package/node_modules/asyncbox/build/cjs/lib/asyncbox.d.ts +0 -103
- package/node_modules/asyncbox/build/cjs/lib/asyncbox.d.ts.map +0 -1
- package/node_modules/asyncbox/build/cjs/lib/asyncbox.js +0 -311
- package/node_modules/asyncbox/build/cjs/lib/asyncbox.js.map +0 -1
- package/node_modules/asyncbox/build/esm/lib/asyncbox.d.ts +0 -103
- package/node_modules/asyncbox/build/esm/lib/asyncbox.d.ts.map +0 -1
- package/node_modules/asyncbox/build/esm/lib/asyncbox.js +0 -298
- package/node_modules/asyncbox/build/esm/lib/asyncbox.js.map +0 -1
- package/node_modules/asyncbox/lib/asyncbox.ts +0 -382
- package/node_modules/shell-quote/.nycrc +0 -14
- package/node_modules/shell-quote/eslint.config.mjs +0 -29
- package/node_modules/shell-quote/security.md +0 -11
- package/node_modules/shell-quote/test/comment.js +0 -16
- package/node_modules/shell-quote/test/env.js +0 -52
- package/node_modules/shell-quote/test/env_fn.js +0 -21
- package/node_modules/shell-quote/test/op.js +0 -102
- package/node_modules/shell-quote/test/parse.js +0 -149
- package/node_modules/shell-quote/test/quote.js +0 -145
- package/node_modules/shell-quote/test/set.js +0 -31
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import utils from '../utils.js';
|
|
2
|
+
import platform from '../platform/index.js';
|
|
3
|
+
|
|
4
|
+
export default platform.hasStandardBrowserEnv
|
|
5
|
+
? // Standard browser envs support document.cookie
|
|
6
|
+
{
|
|
7
|
+
write(name, value, expires, path, domain, secure, sameSite) {
|
|
8
|
+
if (typeof document === 'undefined') return;
|
|
9
|
+
|
|
10
|
+
const cookie = [`${name}=${encodeURIComponent(value)}`];
|
|
11
|
+
|
|
12
|
+
if (utils.isNumber(expires)) {
|
|
13
|
+
cookie.push(`expires=${new Date(expires).toUTCString()}`);
|
|
14
|
+
}
|
|
15
|
+
if (utils.isString(path)) {
|
|
16
|
+
cookie.push(`path=${path}`);
|
|
17
|
+
}
|
|
18
|
+
if (utils.isString(domain)) {
|
|
19
|
+
cookie.push(`domain=${domain}`);
|
|
20
|
+
}
|
|
21
|
+
if (secure === true) {
|
|
22
|
+
cookie.push('secure');
|
|
23
|
+
}
|
|
24
|
+
if (utils.isString(sameSite)) {
|
|
25
|
+
cookie.push(`SameSite=${sameSite}`);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
document.cookie = cookie.join('; ');
|
|
29
|
+
},
|
|
30
|
+
|
|
31
|
+
read(name) {
|
|
32
|
+
if (typeof document === 'undefined') return null;
|
|
33
|
+
// Match name=value by splitting on the semicolon separator instead of building a
|
|
34
|
+
// RegExp from `name` — interpolating an unescaped string into a RegExp would let
|
|
35
|
+
// metacharacters (e.g. `.+?` in an attacker-influenced cookie name) cause ReDoS or
|
|
36
|
+
// match the wrong cookie. Browsers may serialize cookie pairs as either ";" or
|
|
37
|
+
// "; ", so ignore optional whitespace before each cookie name.
|
|
38
|
+
const cookies = document.cookie.split(';');
|
|
39
|
+
for (let i = 0; i < cookies.length; i++) {
|
|
40
|
+
const cookie = cookies[i].replace(/^\s+/, '');
|
|
41
|
+
const eq = cookie.indexOf('=');
|
|
42
|
+
if (eq !== -1 && cookie.slice(0, eq) === name) {
|
|
43
|
+
try {
|
|
44
|
+
return decodeURIComponent(cookie.slice(eq + 1));
|
|
45
|
+
} catch (e) {
|
|
46
|
+
return cookie.slice(eq + 1);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return null;
|
|
51
|
+
},
|
|
52
|
+
|
|
53
|
+
remove(name) {
|
|
54
|
+
this.write(name, '', Date.now() - 86400000, '/');
|
|
55
|
+
},
|
|
56
|
+
}
|
|
57
|
+
: // Non-standard browser env (web workers, react-native) lack needed support.
|
|
58
|
+
{
|
|
59
|
+
write() {},
|
|
60
|
+
read() {
|
|
61
|
+
return null;
|
|
62
|
+
},
|
|
63
|
+
remove() {},
|
|
64
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/*eslint no-console:0*/
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Supply a warning to the developer that a method they are using
|
|
7
|
+
* has been deprecated.
|
|
8
|
+
*
|
|
9
|
+
* @param {string} method The name of the deprecated method
|
|
10
|
+
* @param {string} [instead] The alternate method to use if applicable
|
|
11
|
+
* @param {string} [docs] The documentation URL to get further details
|
|
12
|
+
*
|
|
13
|
+
* @returns {void}
|
|
14
|
+
*/
|
|
15
|
+
export default function deprecatedMethod(method, instead, docs) {
|
|
16
|
+
try {
|
|
17
|
+
console.warn(
|
|
18
|
+
'DEPRECATED method `' +
|
|
19
|
+
method +
|
|
20
|
+
'`.' +
|
|
21
|
+
(instead ? ' Use `' + instead + '` instead.' : '') +
|
|
22
|
+
' This method will be removed in a future release.'
|
|
23
|
+
);
|
|
24
|
+
|
|
25
|
+
if (docs) {
|
|
26
|
+
console.warn('For more information about usage see ' + docs);
|
|
27
|
+
}
|
|
28
|
+
} catch (e) {
|
|
29
|
+
/* Ignore */
|
|
30
|
+
}
|
|
31
|
+
}
|
package/node_modules/@appium/support/node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js
ADDED
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Estimate data: URL byte lengths *without* allocating large buffers.
|
|
3
|
+
* - Fetch percent-decodes a base64 body before decoding it.
|
|
4
|
+
* - Node's Buffer.from(body, 'base64') sizes its backing allocation from the
|
|
5
|
+
* raw body, including ignored characters and content after padding.
|
|
6
|
+
* - Non-base64 data is percent-decoded and then encoded as UTF-8.
|
|
7
|
+
*/
|
|
8
|
+
const isHexDigit = (charCode) =>
|
|
9
|
+
(charCode >= 48 && charCode <= 57) ||
|
|
10
|
+
(charCode >= 65 && charCode <= 70) ||
|
|
11
|
+
(charCode >= 97 && charCode <= 102);
|
|
12
|
+
|
|
13
|
+
const isPercentEncodedByte = (str, i, len) =>
|
|
14
|
+
i + 2 < len && isHexDigit(str.charCodeAt(i + 1)) && isHexDigit(str.charCodeAt(i + 2));
|
|
15
|
+
|
|
16
|
+
const hexValue = (charCode) => (charCode <= 57 ? charCode - 48 : (charCode & 0xdf) - 55);
|
|
17
|
+
|
|
18
|
+
const isBase64Char = (charCode) =>
|
|
19
|
+
(charCode >= 65 && charCode <= 90) || // A-Z
|
|
20
|
+
(charCode >= 97 && charCode <= 122) || // a-z
|
|
21
|
+
(charCode >= 48 && charCode <= 57) || // 0-9
|
|
22
|
+
charCode === 43 || // +
|
|
23
|
+
charCode === 47 || // /
|
|
24
|
+
charCode === 45 || // - (base64url)
|
|
25
|
+
charCode === 95; // _ (base64url)
|
|
26
|
+
|
|
27
|
+
const isBase64Whitespace = (charCode) =>
|
|
28
|
+
charCode === 9 || charCode === 10 || charCode === 12 || charCode === 13 || charCode === 32;
|
|
29
|
+
|
|
30
|
+
const base64Bytes = (significant) => {
|
|
31
|
+
const groups = Math.floor(significant / 4);
|
|
32
|
+
const remainder = significant % 4;
|
|
33
|
+
return groups * 3 + (remainder === 2 ? 1 : remainder === 3 ? 2 : 0);
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
// Buffer.byteLength(body, 'base64') uses the raw string length as an allocation
|
|
37
|
+
// upper bound even when Buffer.from later ignores characters or stops at '='.
|
|
38
|
+
const estimateBase64BufferAllocation = (body) => {
|
|
39
|
+
const len = body.length;
|
|
40
|
+
let padding = 0;
|
|
41
|
+
|
|
42
|
+
if (len > 0 && body.charCodeAt(len - 1) === 61 /* '=' */) {
|
|
43
|
+
padding++;
|
|
44
|
+
|
|
45
|
+
if (len > 1 && body.charCodeAt(len - 2) === 61 /* '=' */) {
|
|
46
|
+
padding++;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
return Math.floor(((len - padding) * 3) / 4);
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
const estimatePercentDecodedBase64Bytes = (body) => {
|
|
54
|
+
const len = body.length;
|
|
55
|
+
let significant = 0;
|
|
56
|
+
let padding = 0;
|
|
57
|
+
let invalid = false;
|
|
58
|
+
|
|
59
|
+
for (let i = 0; i < len; i++) {
|
|
60
|
+
let code = body.charCodeAt(i);
|
|
61
|
+
|
|
62
|
+
if (code === 37 /* '%' */ && isPercentEncodedByte(body, i, len)) {
|
|
63
|
+
code = hexValue(body.charCodeAt(i + 1)) * 16 + hexValue(body.charCodeAt(i + 2));
|
|
64
|
+
i += 2;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
if (isBase64Whitespace(code)) {
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
if (code === 61 /* '=' */) {
|
|
72
|
+
padding++;
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
if (!isBase64Char(code) || padding > 0) {
|
|
77
|
+
invalid = true;
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
significant++;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
// Fetch rejects malformed forgiving-base64 input. Returning the raw-size
|
|
85
|
+
// allocation bound keeps that invalid input from becoming a pre-check bypass.
|
|
86
|
+
if (
|
|
87
|
+
invalid ||
|
|
88
|
+
padding > 2 ||
|
|
89
|
+
(padding > 0 && (significant + padding) % 4 !== 0) ||
|
|
90
|
+
significant % 4 === 1
|
|
91
|
+
) {
|
|
92
|
+
return estimateBase64BufferAllocation(body);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
return base64Bytes(significant);
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
const estimateDataURLBytes = (url, estimateBase64) => {
|
|
99
|
+
if (!url || typeof url !== 'string') return 0;
|
|
100
|
+
if (!url.startsWith('data:')) return 0;
|
|
101
|
+
|
|
102
|
+
const comma = url.indexOf(',');
|
|
103
|
+
if (comma < 0) return 0;
|
|
104
|
+
|
|
105
|
+
const meta = url.slice(5, comma);
|
|
106
|
+
const body = url.slice(comma + 1);
|
|
107
|
+
const isBase64 = /;base64/i.test(meta);
|
|
108
|
+
|
|
109
|
+
if (isBase64) {
|
|
110
|
+
return estimateBase64(body);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
// Compute UTF-8 byte length directly from UTF-16 code units without allocating
|
|
114
|
+
// a byte buffer (TextEncoder.encode would defeat the DoS guard on large bodies).
|
|
115
|
+
// Valid %XX triplets count as one decoded byte; this matches the bytes that
|
|
116
|
+
// decodeURIComponent(body) would produce before Buffer re-encodes the string.
|
|
117
|
+
let bytes = 0;
|
|
118
|
+
for (let i = 0, len = body.length; i < len; i++) {
|
|
119
|
+
const c = body.charCodeAt(i);
|
|
120
|
+
if (c === 37 /* '%' */ && isPercentEncodedByte(body, i, len)) {
|
|
121
|
+
bytes += 1;
|
|
122
|
+
i += 2;
|
|
123
|
+
} else if (c < 0x80) {
|
|
124
|
+
bytes += 1;
|
|
125
|
+
} else if (c < 0x800) {
|
|
126
|
+
bytes += 2;
|
|
127
|
+
} else if (c >= 0xd800 && c <= 0xdbff && i + 1 < len) {
|
|
128
|
+
const next = body.charCodeAt(i + 1);
|
|
129
|
+
if (next >= 0xdc00 && next <= 0xdfff) {
|
|
130
|
+
bytes += 4;
|
|
131
|
+
i++;
|
|
132
|
+
} else {
|
|
133
|
+
bytes += 3;
|
|
134
|
+
}
|
|
135
|
+
} else {
|
|
136
|
+
bytes += 3;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
return bytes;
|
|
140
|
+
};
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* Estimate the percent-decoded payload size used by Fetch data: URLs.
|
|
144
|
+
*
|
|
145
|
+
* @param {string} url
|
|
146
|
+
* @returns {number}
|
|
147
|
+
*/
|
|
148
|
+
export default function estimateDataURLDecodedBytes(url) {
|
|
149
|
+
// Fetch removes URL fragments before processing a data: URL.
|
|
150
|
+
const fragmentIndex = typeof url === 'string' ? url.indexOf('#') : -1;
|
|
151
|
+
|
|
152
|
+
return estimateDataURLBytes(
|
|
153
|
+
fragmentIndex === -1 ? url : url.slice(0, fragmentIndex),
|
|
154
|
+
estimatePercentDecodedBase64Bytes
|
|
155
|
+
);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* Estimate the Buffer backing allocation used by Node's raw base64 decoder.
|
|
160
|
+
*
|
|
161
|
+
* @param {string} url
|
|
162
|
+
* @returns {number}
|
|
163
|
+
*/
|
|
164
|
+
export function estimateDataURLBufferAllocation(url) {
|
|
165
|
+
return estimateDataURLBytes(url, estimateBase64BufferAllocation);
|
|
166
|
+
}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
import utils from '../utils.js';
|
|
4
|
+
import AxiosError from '../core/AxiosError.js';
|
|
5
|
+
import { DEFAULT_FORM_DATA_MAX_DEPTH } from './toFormData.js';
|
|
6
|
+
|
|
7
|
+
const MAX_DEPTH = DEFAULT_FORM_DATA_MAX_DEPTH;
|
|
8
|
+
|
|
9
|
+
function throwIfDepthExceeded(index) {
|
|
10
|
+
if (index > MAX_DEPTH) {
|
|
11
|
+
throw new AxiosError(
|
|
12
|
+
'FormData field is too deeply nested (' + index + ' levels). Max depth: ' + MAX_DEPTH,
|
|
13
|
+
AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED
|
|
14
|
+
);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']
|
|
20
|
+
*
|
|
21
|
+
* @param {string} name - The name of the property to get.
|
|
22
|
+
*
|
|
23
|
+
* @returns An array of strings.
|
|
24
|
+
*/
|
|
25
|
+
function parsePropPath(name) {
|
|
26
|
+
// foo[x][y][z] -> ['foo', 'x', 'y', 'z']
|
|
27
|
+
// foo.x.y.z -> ['foo', 'x', 'y', 'z']
|
|
28
|
+
// A path is split on `.` and on `[...]` groups. A segment — whether written
|
|
29
|
+
// in dot notation or captured inside brackets — may contain any character
|
|
30
|
+
// except `.`, `[` and `]`, so a key like `user-name` or `user name` is kept
|
|
31
|
+
// literal instead of being split (#5402). `.`, `[` and `]` keep their existing
|
|
32
|
+
// meaning, e.g. `foo[bar.baz]` -> ['foo', 'bar', 'baz'] and `[]` is an array push.
|
|
33
|
+
// Excluding `[` from the bracket group also makes the match fail fast at the
|
|
34
|
+
// next `[`, so a malformed name cannot rescan to the end of the string from
|
|
35
|
+
// every unmatched `[` — parsing stays linear in the length of the name.
|
|
36
|
+
const path = [];
|
|
37
|
+
const pattern = /[^.[\]]+|\[([^.[\]]*)]/g;
|
|
38
|
+
let match;
|
|
39
|
+
|
|
40
|
+
while ((match = pattern.exec(name)) !== null) {
|
|
41
|
+
throwIfDepthExceeded(path.length);
|
|
42
|
+
path.push(match[0] === '[]' ? '' : match[1] || match[0]);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
return path;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Convert an array to an object.
|
|
50
|
+
*
|
|
51
|
+
* @param {Array<any>} arr - The array to convert to an object.
|
|
52
|
+
*
|
|
53
|
+
* @returns An object with the same keys and values as the array.
|
|
54
|
+
*/
|
|
55
|
+
function arrayToObject(arr) {
|
|
56
|
+
const obj = {};
|
|
57
|
+
const keys = Object.keys(arr);
|
|
58
|
+
let i;
|
|
59
|
+
const len = keys.length;
|
|
60
|
+
let key;
|
|
61
|
+
for (i = 0; i < len; i++) {
|
|
62
|
+
key = keys[i];
|
|
63
|
+
obj[key] = arr[key];
|
|
64
|
+
}
|
|
65
|
+
return obj;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* It takes a FormData object and returns a JavaScript object
|
|
70
|
+
*
|
|
71
|
+
* @param {string} formData The FormData object to convert to JSON.
|
|
72
|
+
*
|
|
73
|
+
* @returns {Object<string, any> | null} The converted object.
|
|
74
|
+
*/
|
|
75
|
+
function formDataToJSON(formData) {
|
|
76
|
+
function buildPath(path, value, target, index) {
|
|
77
|
+
throwIfDepthExceeded(index);
|
|
78
|
+
|
|
79
|
+
let name = path[index++];
|
|
80
|
+
|
|
81
|
+
if (name === '__proto__') return true;
|
|
82
|
+
|
|
83
|
+
const isNumericKey = Number.isFinite(+name);
|
|
84
|
+
const isLast = index >= path.length;
|
|
85
|
+
name = !name && utils.isArray(target) ? target.length : name;
|
|
86
|
+
|
|
87
|
+
if (isLast) {
|
|
88
|
+
if (utils.hasOwnProp(target, name)) {
|
|
89
|
+
target[name] = utils.isArray(target[name])
|
|
90
|
+
? target[name].concat(value)
|
|
91
|
+
: [target[name], value];
|
|
92
|
+
} else {
|
|
93
|
+
target[name] = value;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
return !isNumericKey;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
if (!utils.hasOwnProp(target, name) || !utils.isObject(target[name])) {
|
|
100
|
+
target[name] = [];
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
const result = buildPath(path, value, target[name], index);
|
|
104
|
+
|
|
105
|
+
if (result && utils.isArray(target[name])) {
|
|
106
|
+
target[name] = arrayToObject(target[name]);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
return !isNumericKey;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {
|
|
113
|
+
const obj = {};
|
|
114
|
+
|
|
115
|
+
utils.forEachEntry(formData, (name, value) => {
|
|
116
|
+
buildPath(parsePropPath(name), value, obj, 0);
|
|
117
|
+
});
|
|
118
|
+
|
|
119
|
+
return obj;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
return null;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
export default formDataToJSON;
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import util from 'util';
|
|
2
|
+
import { Readable } from 'stream';
|
|
3
|
+
import utils from '../utils.js';
|
|
4
|
+
import readBlob from './readBlob.js';
|
|
5
|
+
import platform from '../platform/index.js';
|
|
6
|
+
|
|
7
|
+
const BOUNDARY_ALPHABET = platform.ALPHABET.ALPHA_DIGIT + '-_';
|
|
8
|
+
|
|
9
|
+
const textEncoder = typeof TextEncoder === 'function' ? new TextEncoder() : new util.TextEncoder();
|
|
10
|
+
|
|
11
|
+
const CRLF = '\r\n';
|
|
12
|
+
const CRLF_BYTES = textEncoder.encode(CRLF);
|
|
13
|
+
const CRLF_BYTES_COUNT = 2;
|
|
14
|
+
|
|
15
|
+
class FormDataPart {
|
|
16
|
+
constructor(name, value) {
|
|
17
|
+
const { escapeName } = this.constructor;
|
|
18
|
+
const isStringValue = utils.isString(value);
|
|
19
|
+
|
|
20
|
+
let headers = `Content-Disposition: form-data; name="${escapeName(name)}"${
|
|
21
|
+
!isStringValue && value.name ? `; filename="${escapeName(value.name)}"` : ''
|
|
22
|
+
}${CRLF}`;
|
|
23
|
+
|
|
24
|
+
if (isStringValue) {
|
|
25
|
+
value = textEncoder.encode(String(value).replace(/\r?\n|\r\n?/g, CRLF));
|
|
26
|
+
} else {
|
|
27
|
+
const safeType = String(value.type || 'application/octet-stream').replace(/[\r\n]/g, '');
|
|
28
|
+
headers += `Content-Type: ${safeType}${CRLF}`;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
this.headers = textEncoder.encode(headers + CRLF);
|
|
32
|
+
|
|
33
|
+
this.contentLength = isStringValue ? value.byteLength : value.size;
|
|
34
|
+
|
|
35
|
+
this.size = this.headers.byteLength + this.contentLength + CRLF_BYTES_COUNT;
|
|
36
|
+
|
|
37
|
+
this.name = name;
|
|
38
|
+
this.value = value;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
async *encode() {
|
|
42
|
+
yield this.headers;
|
|
43
|
+
|
|
44
|
+
const { value } = this;
|
|
45
|
+
|
|
46
|
+
if (utils.isTypedArray(value)) {
|
|
47
|
+
yield value;
|
|
48
|
+
} else {
|
|
49
|
+
yield* readBlob(value);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
yield CRLF_BYTES;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
static escapeName(name) {
|
|
56
|
+
return String(name).replace(
|
|
57
|
+
/[\r\n"]/g,
|
|
58
|
+
(match) =>
|
|
59
|
+
({
|
|
60
|
+
'\r': '%0D',
|
|
61
|
+
'\n': '%0A',
|
|
62
|
+
'"': '%22',
|
|
63
|
+
})[match]
|
|
64
|
+
);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
const formDataToStream = (form, headersHandler, options) => {
|
|
69
|
+
const {
|
|
70
|
+
tag = 'form-data-boundary',
|
|
71
|
+
size = 25,
|
|
72
|
+
boundary = tag + '-' + platform.generateString(size, BOUNDARY_ALPHABET),
|
|
73
|
+
} = options || {};
|
|
74
|
+
|
|
75
|
+
if (!utils.isFormData(form)) {
|
|
76
|
+
throw new TypeError('FormData instance required');
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
if (boundary.length < 1 || boundary.length > 70) {
|
|
80
|
+
throw new Error('boundary must be 1-70 characters long');
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
const boundaryBytes = textEncoder.encode('--' + boundary + CRLF);
|
|
84
|
+
const footerBytes = textEncoder.encode('--' + boundary + '--' + CRLF);
|
|
85
|
+
let contentLength = footerBytes.byteLength;
|
|
86
|
+
|
|
87
|
+
const parts = Array.from(form.entries()).map(([name, value]) => {
|
|
88
|
+
const part = new FormDataPart(name, value);
|
|
89
|
+
contentLength += part.size;
|
|
90
|
+
return part;
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
contentLength += boundaryBytes.byteLength * parts.length;
|
|
94
|
+
|
|
95
|
+
contentLength = utils.toFiniteNumber(contentLength);
|
|
96
|
+
|
|
97
|
+
const computedHeaders = {
|
|
98
|
+
'Content-Type': `multipart/form-data; boundary=${boundary}`,
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
if (Number.isFinite(contentLength)) {
|
|
102
|
+
computedHeaders['Content-Length'] = contentLength;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
headersHandler && headersHandler(computedHeaders);
|
|
106
|
+
|
|
107
|
+
return Readable.from(
|
|
108
|
+
(async function* () {
|
|
109
|
+
for (const part of parts) {
|
|
110
|
+
yield boundaryBytes;
|
|
111
|
+
yield* part.encode();
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
yield footerBytes;
|
|
115
|
+
})()
|
|
116
|
+
);
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
export default formDataToStream;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
import AxiosError from '../core/AxiosError.js';
|
|
4
|
+
import parseProtocol from './parseProtocol.js';
|
|
5
|
+
import platform from '../platform/index.js';
|
|
6
|
+
|
|
7
|
+
// RFC 2397: data:[<mediatype>][;base64],<data>
|
|
8
|
+
// mediatype = type/subtype followed by optional ;name=value parameters
|
|
9
|
+
const DATA_URL_PATTERN = /^([^,;/]+\/[^,;/]+)?((?:;[^,;=]+=[^,;]+)*)(;base64)?,([\s\S]*)$/;
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Parse data uri to a Buffer or Blob
|
|
13
|
+
*
|
|
14
|
+
* @param {String} uri
|
|
15
|
+
* @param {?Boolean} asBlob
|
|
16
|
+
* @param {?Object} options
|
|
17
|
+
* @param {?Function} options.Blob
|
|
18
|
+
*
|
|
19
|
+
* @returns {Buffer|Blob}
|
|
20
|
+
*/
|
|
21
|
+
export default function fromDataURI(uri, asBlob, options) {
|
|
22
|
+
const _Blob = (options && options.Blob) || platform.classes.Blob;
|
|
23
|
+
const protocol = parseProtocol(uri);
|
|
24
|
+
|
|
25
|
+
if (asBlob === undefined && _Blob) {
|
|
26
|
+
asBlob = true;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
if (protocol === 'data') {
|
|
30
|
+
uri = protocol.length ? uri.slice(protocol.length + 1) : uri;
|
|
31
|
+
|
|
32
|
+
const match = DATA_URL_PATTERN.exec(uri);
|
|
33
|
+
|
|
34
|
+
if (!match) {
|
|
35
|
+
throw new AxiosError('Invalid URL', AxiosError.ERR_INVALID_URL);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
const type = match[1];
|
|
39
|
+
const params = match[2];
|
|
40
|
+
const encoding = match[3] ? 'base64' : 'utf8';
|
|
41
|
+
const body = match[4];
|
|
42
|
+
|
|
43
|
+
// RFC 2397 section 3: default mediatype is text/plain;charset=US-ASCII
|
|
44
|
+
// Bare `data:,` leaves mime undefined; Blob normalises that to "" per spec.
|
|
45
|
+
let mime = '';
|
|
46
|
+
if (type) {
|
|
47
|
+
mime = params ? type + params : type;
|
|
48
|
+
} else if (params) {
|
|
49
|
+
mime = 'text/plain' + params;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
const buffer =
|
|
53
|
+
encoding === 'base64'
|
|
54
|
+
? Buffer.from(body, 'base64')
|
|
55
|
+
: Buffer.from(decodeURIComponent(body), encoding);
|
|
56
|
+
|
|
57
|
+
if (asBlob) {
|
|
58
|
+
if (!_Blob) {
|
|
59
|
+
throw new AxiosError('Blob is not supported', AxiosError.ERR_NOT_SUPPORT);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
return new _Blob([buffer], { type: mime });
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
return buffer;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
throw new AxiosError('Unsupported protocol ' + protocol, AxiosError.ERR_NOT_SUPPORT);
|
|
69
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Determines whether the specified URL is absolute
|
|
5
|
+
*
|
|
6
|
+
* @param {string} url The URL to test
|
|
7
|
+
*
|
|
8
|
+
* @returns {boolean} True if the specified URL is absolute, otherwise false
|
|
9
|
+
*/
|
|
10
|
+
export default function isAbsoluteURL(url) {
|
|
11
|
+
// A URL is considered absolute if it begins with "<scheme>://" or "//" (protocol-relative URL).
|
|
12
|
+
// RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed
|
|
13
|
+
// by any combination of letters, digits, plus, period, or hyphen.
|
|
14
|
+
if (typeof url !== 'string') {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url);
|
|
19
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
import utils from '../utils.js';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Determines whether the payload is an error thrown by Axios
|
|
7
|
+
*
|
|
8
|
+
* @param {*} payload The value to test
|
|
9
|
+
*
|
|
10
|
+
* @returns {boolean} True if the payload is an error thrown by Axios, otherwise false
|
|
11
|
+
*/
|
|
12
|
+
export default function isAxiosError(payload) {
|
|
13
|
+
return utils.isObject(payload) && payload.isAxiosError === true;
|
|
14
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import platform from '../platform/index.js';
|
|
2
|
+
|
|
3
|
+
export default platform.hasStandardBrowserEnv
|
|
4
|
+
? ((origin, isMSIE) => (url) => {
|
|
5
|
+
url = new URL(url, platform.origin);
|
|
6
|
+
|
|
7
|
+
return (
|
|
8
|
+
origin.protocol === url.protocol &&
|
|
9
|
+
origin.host === url.host &&
|
|
10
|
+
(isMSIE || origin.port === url.port)
|
|
11
|
+
);
|
|
12
|
+
})(
|
|
13
|
+
new URL(platform.origin),
|
|
14
|
+
platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)
|
|
15
|
+
)
|
|
16
|
+
: () => true;
|
package/node_modules/@appium/support/node_modules/axios/lib/helpers/normalizeURLForProtocolCheck.js
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const urlParserControlCharacters = /[\t\n\r]/g;
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Match WHATWG URL preprocessing before checking a URL's protocol.
|
|
7
|
+
*
|
|
8
|
+
* @param {string} url
|
|
9
|
+
*
|
|
10
|
+
* @returns {string}
|
|
11
|
+
*/
|
|
12
|
+
export default function normalizeURLForProtocolCheck(url) {
|
|
13
|
+
if (typeof url !== 'string') {
|
|
14
|
+
return url;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
let start = 0;
|
|
18
|
+
|
|
19
|
+
while (start < url.length && url.charCodeAt(start) <= 0x20) {
|
|
20
|
+
start++;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
return url.slice(start).replace(urlParserControlCharacters, '');
|
|
24
|
+
}
|